Training models for solar panel segmentation¶

image.png

Let's install the necessary libraries and then import them.

In [ ]:
!pip install geoai-py
Collecting geoai-py
  Downloading geoai_py-0.6.0-py2.py3-none-any.whl.metadata (6.7 kB)
Requirement already satisfied: albumentations in /usr/local/lib/python3.11/dist-packages (from geoai-py) (2.0.6)
Collecting buildingregulariser (from geoai-py)
  Downloading buildingregulariser-0.1.12-py3-none-any.whl.metadata (5.9 kB)
Collecting contextily (from geoai-py)
  Downloading contextily-1.6.2-py3-none-any.whl.metadata (2.9 kB)
Requirement already satisfied: geopandas in /usr/local/lib/python3.11/dist-packages (from geoai-py) (1.0.1)
Requirement already satisfied: huggingface_hub in /usr/local/lib/python3.11/dist-packages (from geoai-py) (0.31.2)
Collecting jupyter-server-proxy (from geoai-py)
  Downloading jupyter_server_proxy-4.4.0-py3-none-any.whl.metadata (8.7 kB)
Collecting leafmap (from geoai-py)
  Downloading leafmap-0.45.0-py2.py3-none-any.whl.metadata (16 kB)
Collecting localtileserver (from geoai-py)
  Downloading localtileserver-0.10.6-py3-none-any.whl.metadata (5.2 kB)
Collecting mapclassify (from geoai-py)
  Downloading mapclassify-2.8.1-py3-none-any.whl.metadata (2.8 kB)
Collecting maplibre (from geoai-py)
  Downloading maplibre-0.3.3-py3-none-any.whl.metadata (3.9 kB)
Requirement already satisfied: opencv-python-headless in /usr/local/lib/python3.11/dist-packages (from geoai-py) (4.11.0.86)
Collecting overturemaps (from geoai-py)
  Downloading overturemaps-0.14.0-py3-none-any.whl.metadata (4.0 kB)
Collecting planetary-computer (from geoai-py)
  Downloading planetary_computer-1.0.0-py3-none-any.whl.metadata (7.4 kB)
Collecting pystac-client (from geoai-py)
  Downloading pystac_client-0.8.6-py3-none-any.whl.metadata (3.0 kB)
Collecting rasterio (from geoai-py)
  Downloading rasterio-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (9.1 kB)
Collecting rioxarray (from geoai-py)
  Downloading rioxarray-0.19.0-py3-none-any.whl.metadata (5.5 kB)
Requirement already satisfied: scikit-image in /usr/local/lib/python3.11/dist-packages (from geoai-py) (0.25.2)
Requirement already satisfied: scikit-learn in /usr/local/lib/python3.11/dist-packages (from geoai-py) (1.6.1)
Requirement already satisfied: torch in /usr/local/lib/python3.11/dist-packages (from geoai-py) (2.6.0+cu124)
Collecting torchgeo (from geoai-py)
  Downloading torchgeo-0.7.0-py3-none-any.whl.metadata (19 kB)
Collecting torchinfo (from geoai-py)
  Downloading torchinfo-1.8.0-py3-none-any.whl.metadata (21 kB)
Requirement already satisfied: tqdm in /usr/local/lib/python3.11/dist-packages (from geoai-py) (4.67.1)
Requirement already satisfied: transformers in /usr/local/lib/python3.11/dist-packages (from geoai-py) (4.51.3)
Requirement already satisfied: numpy>=1.24.4 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (2.0.2)
Requirement already satisfied: scipy>=1.10.0 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (1.15.3)
Requirement already satisfied: PyYAML in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (6.0.2)
Requirement already satisfied: pydantic>=2.9.2 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (2.11.4)
Requirement already satisfied: albucore==0.0.24 in /usr/local/lib/python3.11/dist-packages (from albumentations->geoai-py) (0.0.24)
Requirement already satisfied: stringzilla>=3.10.4 in /usr/local/lib/python3.11/dist-packages (from albucore==0.0.24->albumentations->geoai-py) (3.12.5)
Requirement already satisfied: simsimd>=5.9.2 in /usr/local/lib/python3.11/dist-packages (from albucore==0.0.24->albumentations->geoai-py) (6.2.1)
Requirement already satisfied: pyogrio>=0.7.2 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (0.11.0)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (24.2)
Requirement already satisfied: pandas>=1.4.0 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (2.2.2)
Requirement already satisfied: pyproj>=3.3.0 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (3.7.1)
Requirement already satisfied: shapely>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from geopandas->geoai-py) (2.1.0)
Requirement already satisfied: geopy in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (2.4.1)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (3.10.0)
Collecting mercantile (from contextily->geoai-py)
  Downloading mercantile-1.2.1-py3-none-any.whl.metadata (4.8 kB)
Requirement already satisfied: pillow in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (11.2.1)
Requirement already satisfied: requests in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (2.32.3)
Requirement already satisfied: joblib in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (1.5.0)
Requirement already satisfied: xyzservices in /usr/local/lib/python3.11/dist-packages (from contextily->geoai-py) (2025.4.0)
Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from huggingface_hub->geoai-py) (3.18.0)
Requirement already satisfied: fsspec>=2023.5.0 in /usr/local/lib/python3.11/dist-packages (from huggingface_hub->geoai-py) (2025.3.2)
Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.11/dist-packages (from huggingface_hub->geoai-py) (4.13.2)
Requirement already satisfied: aiohttp in /usr/local/lib/python3.11/dist-packages (from jupyter-server-proxy->geoai-py) (3.11.15)
Collecting jupyter-server>=1.24.0 (from jupyter-server-proxy->geoai-py)
  Downloading jupyter_server-2.16.0-py3-none-any.whl.metadata (8.5 kB)
Collecting simpervisor>=1.0.0 (from jupyter-server-proxy->geoai-py)
  Downloading simpervisor-1.0.0-py3-none-any.whl.metadata (4.3 kB)
Requirement already satisfied: tornado>=6.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server-proxy->geoai-py) (6.4.2)
Requirement already satisfied: traitlets>=5.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server-proxy->geoai-py) (5.7.1)
Collecting anywidget (from leafmap->geoai-py)
  Downloading anywidget-0.9.18-py3-none-any.whl.metadata (8.9 kB)
Requirement already satisfied: bqplot in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.12.44)
Requirement already satisfied: colour in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.1.5)
Requirement already satisfied: duckdb in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (1.2.2)
Requirement already satisfied: folium in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.19.5)
Requirement already satisfied: gdown in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (5.2.0)
Collecting geojson (from leafmap->geoai-py)
  Downloading geojson-3.2.0-py3-none-any.whl.metadata (16 kB)
Requirement already satisfied: ipyevents in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (2.0.2)
Requirement already satisfied: ipyfilechooser in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.6.0)
Requirement already satisfied: ipyleaflet in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.19.2)
Collecting ipyvuetify (from leafmap->geoai-py)
  Downloading ipyvuetify-1.11.1-py2.py3-none-any.whl.metadata (7.5 kB)
Requirement already satisfied: ipywidgets in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (7.7.1)
Requirement already satisfied: plotly in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (5.24.1)
Requirement already satisfied: psutil in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (5.9.5)
Requirement already satisfied: pyshp in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (2.3.1)
Requirement already satisfied: python-box in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (7.3.2)
Requirement already satisfied: scooby in /usr/local/lib/python3.11/dist-packages (from leafmap->geoai-py) (0.10.1)
Collecting whiteboxgui (from leafmap->geoai-py)
  Downloading whiteboxgui-2.3.0-py2.py3-none-any.whl.metadata (5.7 kB)
Requirement already satisfied: click in /usr/local/lib/python3.11/dist-packages (from localtileserver->geoai-py) (8.2.0)
Requirement already satisfied: flask<4,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from localtileserver->geoai-py) (3.1.1)
Collecting Flask-Caching (from localtileserver->geoai-py)
  Downloading Flask_Caching-2.3.1-py3-none-any.whl.metadata (2.2 kB)
Collecting flask-cors (from localtileserver->geoai-py)
  Downloading flask_cors-6.0.0-py3-none-any.whl.metadata (961 bytes)
Collecting flask-restx>=1.3.0 (from localtileserver->geoai-py)
  Downloading flask_restx-1.3.0-py2.py3-none-any.whl.metadata (9.3 kB)
Collecting rio-tiler (from localtileserver->geoai-py)
  Downloading rio_tiler-7.7.2-py3-none-any.whl.metadata (12 kB)
Collecting rio-cogeo (from localtileserver->geoai-py)
  Downloading rio_cogeo-5.4.1-py3-none-any.whl.metadata (4.7 kB)
Collecting server-thread (from localtileserver->geoai-py)
  Downloading server_thread-0.3.0-py3-none-any.whl.metadata (5.3 kB)
Requirement already satisfied: werkzeug in /usr/local/lib/python3.11/dist-packages (from localtileserver->geoai-py) (3.1.3)
Requirement already satisfied: networkx>=2.7 in /usr/local/lib/python3.11/dist-packages (from mapclassify->geoai-py) (3.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from scikit-learn->geoai-py) (3.6.0)
Requirement already satisfied: branca in /usr/local/lib/python3.11/dist-packages (from maplibre->geoai-py) (0.8.1)
Collecting eval-type-backport (from maplibre->geoai-py)
  Downloading eval_type_backport-0.2.2-py3-none-any.whl.metadata (2.2 kB)
Requirement already satisfied: jinja2>=3.1.5 in /usr/local/lib/python3.11/dist-packages (from maplibre->geoai-py) (3.1.6)
Requirement already satisfied: pyarrow>=15.0.2 in /usr/local/lib/python3.11/dist-packages (from overturemaps->geoai-py) (18.1.0)
Collecting pystac>=1.0.0 (from planetary-computer->geoai-py)
  Downloading pystac-1.13.0-py3-none-any.whl.metadata (4.7 kB)
Requirement already satisfied: pytz>=2020.5 in /usr/local/lib/python3.11/dist-packages (from planetary-computer->geoai-py) (2025.2)
Collecting python-dotenv (from planetary-computer->geoai-py)
  Downloading python_dotenv-1.1.0-py3-none-any.whl.metadata (24 kB)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from pystac-client->geoai-py) (2.9.0.post0)
Collecting affine (from rasterio->geoai-py)
  Downloading affine-2.4.0-py3-none-any.whl.metadata (4.0 kB)
Requirement already satisfied: attrs in /usr/local/lib/python3.11/dist-packages (from rasterio->geoai-py) (25.3.0)
Requirement already satisfied: certifi in /usr/local/lib/python3.11/dist-packages (from rasterio->geoai-py) (2025.4.26)
Collecting cligj>=0.5 (from rasterio->geoai-py)
  Downloading cligj-0.7.2-py3-none-any.whl.metadata (5.0 kB)
Collecting click-plugins (from rasterio->geoai-py)
  Downloading click_plugins-1.1.1-py2.py3-none-any.whl.metadata (6.4 kB)
Requirement already satisfied: pyparsing in /usr/local/lib/python3.11/dist-packages (from rasterio->geoai-py) (3.2.3)
Requirement already satisfied: xarray>=2024.7.0 in /usr/local/lib/python3.11/dist-packages (from rioxarray->geoai-py) (2025.3.1)
Requirement already satisfied: imageio!=2.35.0,>=2.33 in /usr/local/lib/python3.11/dist-packages (from scikit-image->geoai-py) (2.37.0)
Requirement already satisfied: tifffile>=2022.8.12 in /usr/local/lib/python3.11/dist-packages (from scikit-image->geoai-py) (2025.5.10)
Requirement already satisfied: lazy-loader>=0.4 in /usr/local/lib/python3.11/dist-packages (from scikit-image->geoai-py) (0.4)
Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch->geoai-py)
  Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch->geoai-py)
  Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch->geoai-py)
  Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch->geoai-py)
  Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cublas-cu12==12.4.5.8 (from torch->geoai-py)
  Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cufft-cu12==11.2.1.3 (from torch->geoai-py)
  Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-curand-cu12==10.3.5.147 (from torch->geoai-py)
  Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch->geoai-py)
  Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch->geoai-py)
  Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Requirement already satisfied: nvidia-cusparselt-cu12==0.6.2 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (0.6.2)
Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (2.21.5)
Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (12.4.127)
Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch->geoai-py)
  Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Requirement already satisfied: triton==3.2.0 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (3.2.0)
Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.11/dist-packages (from torch->geoai-py) (1.13.1)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy==1.13.1->torch->geoai-py) (1.3.0)
Requirement already satisfied: einops>=0.3 in /usr/local/lib/python3.11/dist-packages (from torchgeo->geoai-py) (0.8.1)
Collecting fiona>=1.8.22 (from torchgeo->geoai-py)
  Downloading fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (56 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.6/56.6 kB 2.9 MB/s eta 0:00:00
Collecting kornia>=0.7.4 (from torchgeo->geoai-py)
  Downloading kornia-0.8.1-py2.py3-none-any.whl.metadata (17 kB)
Collecting lightly!=1.4.26,>=1.4.5 (from torchgeo->geoai-py)
  Downloading lightly-1.5.20-py3-none-any.whl.metadata (37 kB)
Collecting lightning!=2.3.*,!=2.5.0,>=2 (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
  Downloading lightning-2.5.1.post0-py3-none-any.whl.metadata (39 kB)
Collecting rtree>=1.0.1 (from torchgeo->geoai-py)
  Downloading rtree-1.4.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.1 kB)
Collecting segmentation-models-pytorch>=0.3.3 (from torchgeo->geoai-py)
  Downloading segmentation_models_pytorch-0.5.0-py3-none-any.whl.metadata (17 kB)
Requirement already satisfied: timm>=0.9.2 in /usr/local/lib/python3.11/dist-packages (from torchgeo->geoai-py) (1.0.15)
Collecting torchmetrics>=1.2 (from torchgeo->geoai-py)
  Downloading torchmetrics-1.7.1-py3-none-any.whl.metadata (21 kB)
Requirement already satisfied: torchvision>=0.15.1 in /usr/local/lib/python3.11/dist-packages (from torchgeo->geoai-py) (0.21.0+cu124)
Requirement already satisfied: regex!=2019.12.17 in /usr/local/lib/python3.11/dist-packages (from transformers->geoai-py) (2024.11.6)
Requirement already satisfied: tokenizers<0.22,>=0.21 in /usr/local/lib/python3.11/dist-packages (from transformers->geoai-py) (0.21.1)
Requirement already satisfied: safetensors>=0.4.3 in /usr/local/lib/python3.11/dist-packages (from transformers->geoai-py) (0.5.3)
Requirement already satisfied: blinker>=1.9.0 in /usr/local/lib/python3.11/dist-packages (from flask<4,>=2.0.0->localtileserver->geoai-py) (1.9.0)
Requirement already satisfied: itsdangerous>=2.2.0 in /usr/local/lib/python3.11/dist-packages (from flask<4,>=2.0.0->localtileserver->geoai-py) (2.2.0)
Requirement already satisfied: markupsafe>=2.1.1 in /usr/local/lib/python3.11/dist-packages (from flask<4,>=2.0.0->localtileserver->geoai-py) (3.0.2)
Collecting aniso8601>=0.82 (from flask-restx>=1.3.0->localtileserver->geoai-py)
  Downloading aniso8601-10.0.1-py2.py3-none-any.whl.metadata (23 kB)
Requirement already satisfied: jsonschema in /usr/local/lib/python3.11/dist-packages (from flask-restx>=1.3.0->localtileserver->geoai-py) (4.23.0)
Requirement already satisfied: importlib-resources in /usr/local/lib/python3.11/dist-packages (from flask-restx>=1.3.0->localtileserver->geoai-py) (6.5.2)
Requirement already satisfied: anyio>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (4.9.0)
Requirement already satisfied: argon2-cffi>=21.1 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (23.1.0)
Collecting jupyter-client>=7.4.4 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading jupyter_client-8.6.3-py3-none-any.whl.metadata (8.3 kB)
Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (5.7.2)
Collecting jupyter-events>=0.11.0 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading jupyter_events-0.12.0-py3-none-any.whl.metadata (5.8 kB)
Collecting jupyter-server-terminals>=0.4.4 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading jupyter_server_terminals-0.5.3-py3-none-any.whl.metadata (5.6 kB)
Requirement already satisfied: nbconvert>=6.4.4 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (7.16.6)
Requirement already satisfied: nbformat>=5.3.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (5.10.4)
Collecting overrides>=5.0 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading overrides-7.7.0-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: prometheus-client>=0.9 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.21.1)
Requirement already satisfied: pyzmq>=24 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (24.0.1)
Requirement already satisfied: send2trash>=1.8.2 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.8.3)
Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.18.1)
Requirement already satisfied: websocket-client>=1.7 in /usr/local/lib/python3.11/dist-packages (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.8.0)
Collecting kornia_rs>=0.1.9 (from kornia>=0.7.4->torchgeo->geoai-py)
  Downloading kornia_rs-0.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Collecting hydra-core>=1.0.0 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
  Downloading hydra_core-1.3.2-py3-none-any.whl.metadata (5.5 kB)
Collecting lightly_utils~=0.0.0 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
  Downloading lightly_utils-0.0.2-py3-none-any.whl.metadata (1.4 kB)
Requirement already satisfied: six>=1.10 in /usr/local/lib/python3.11/dist-packages (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py) (1.17.0)
Collecting pytorch_lightning>=1.0.4 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
  Downloading pytorch_lightning-2.5.1.post0-py3-none-any.whl.metadata (20 kB)
Requirement already satisfied: urllib3>=1.25.3 in /usr/local/lib/python3.11/dist-packages (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py) (2.4.0)
Collecting aenum>=3.1.11 (from lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py)
  Downloading aenum-3.1.16-py3-none-any.whl.metadata (3.8 kB)
Collecting lightning-utilities<2.0,>=0.10.0 (from lightning!=2.3.*,!=2.5.0,>=2->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
  Downloading lightning_utilities-0.14.3-py3-none-any.whl.metadata (5.6 kB)
Collecting jsonargparse<5.0,>=4.27.7 (from jsonargparse[signatures]<5.0,>=4.27.7; extra == "pytorch-extra"->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
  Downloading jsonargparse-4.40.0-py3-none-any.whl.metadata (13 kB)
Requirement already satisfied: omegaconf<3.0,>=2.2.3 in /usr/local/lib/python3.11/dist-packages (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (2.3.0)
Requirement already satisfied: rich<14.0,>=12.3.0 in /usr/local/lib/python3.11/dist-packages (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (13.9.4)
Collecting tensorboardX<3.0,>=2.2 (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
  Downloading tensorboardX-2.6.2.2-py2.py3-none-any.whl.metadata (5.8 kB)
Collecting bitsandbytes<1.0,>=0.45.2 (from lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
  Downloading bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl.metadata (5.0 kB)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (1.3.2)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (4.58.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib->contextily->geoai-py) (1.4.8)
Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.4.0->geopandas->geoai-py) (2025.2)
Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.11/dist-packages (from pydantic>=2.9.2->albumentations->geoai-py) (0.7.0)
Requirement already satisfied: pydantic-core==2.33.2 in /usr/local/lib/python3.11/dist-packages (from pydantic>=2.9.2->albumentations->geoai-py) (2.33.2)
Requirement already satisfied: typing-inspection>=0.4.0 in /usr/local/lib/python3.11/dist-packages (from pydantic>=2.9.2->albumentations->geoai-py) (0.4.0)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests->contextily->geoai-py) (3.4.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests->contextily->geoai-py) (3.10)
Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (2.6.1)
Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (1.3.2)
Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (1.6.0)
Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (6.4.3)
Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (0.3.1)
Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/python3.11/dist-packages (from aiohttp->jupyter-server-proxy->geoai-py) (1.20.0)
Collecting psygnal>=0.8.1 (from anywidget->leafmap->geoai-py)
  Downloading psygnal-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.0 kB)
Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (6.17.1)
Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (0.2.0)
Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (3.6.10)
Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (7.34.0)
Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets->leafmap->geoai-py) (3.0.15)
Requirement already satisfied: traittypes>=0.0.6 in /usr/local/lib/python3.11/dist-packages (from bqplot->leafmap->geoai-py) (0.2.1)
Collecting cachelib>=0.9.0 (from Flask-Caching->localtileserver->geoai-py)
  Downloading cachelib-0.13.0-py3-none-any.whl.metadata (2.0 kB)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.11/dist-packages (from gdown->leafmap->geoai-py) (4.13.4)
Requirement already satisfied: geographiclib<3,>=1.52 in /usr/local/lib/python3.11/dist-packages (from geopy->contextily->geoai-py) (2.0)
Requirement already satisfied: jupyter-leaflet<0.20,>=0.19 in /usr/local/lib/python3.11/dist-packages (from ipyleaflet->leafmap->geoai-py) (0.19.2)
Collecting ipyvue<2,>=1.7 (from ipyvuetify->leafmap->geoai-py)
  Downloading ipyvue-1.11.2-py2.py3-none-any.whl.metadata (1.1 kB)
Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.11/dist-packages (from plotly->leafmap->geoai-py) (9.1.2)
Collecting morecantile<7.0,>=5.0 (from rio-cogeo->localtileserver->geoai-py)
  Downloading morecantile-6.2.0-py3-none-any.whl.metadata (7.3 kB)
Requirement already satisfied: cachetools in /usr/local/lib/python3.11/dist-packages (from rio-tiler->localtileserver->geoai-py) (5.5.2)
Collecting color-operations (from rio-tiler->localtileserver->geoai-py)
  Downloading color_operations-0.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.3 kB)
Requirement already satisfied: httpx in /usr/local/lib/python3.11/dist-packages (from rio-tiler->localtileserver->geoai-py) (0.28.1)
Requirement already satisfied: numexpr in /usr/local/lib/python3.11/dist-packages (from rio-tiler->localtileserver->geoai-py) (2.10.2)
Collecting uvicorn (from server-thread->localtileserver->geoai-py)
  Downloading uvicorn-0.34.2-py3-none-any.whl.metadata (6.5 kB)
Requirement already satisfied: ipytree in /usr/local/lib/python3.11/dist-packages (from whiteboxgui->leafmap->geoai-py) (0.2.2)
Collecting whitebox (from whiteboxgui->leafmap->geoai-py)
  Downloading whitebox-2.3.6-py2.py3-none-any.whl.metadata (11 kB)
Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.11/dist-packages (from anyio>=3.1.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.3.1)
Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.11/dist-packages (from argon2-cffi>=21.1->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (21.2.0)
Requirement already satisfied: antlr4-python3-runtime==4.9.* in /usr/local/lib/python3.11/dist-packages (from hydra-core>=1.0.0->lightly!=1.4.26,>=1.4.5->torchgeo->geoai-py) (4.9.3)
Requirement already satisfied: debugpy>=1.0 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets->leafmap->geoai-py) (1.8.0)
Requirement already satisfied: matplotlib-inline>=0.1 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets->leafmap->geoai-py) (0.1.7)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets->leafmap->geoai-py) (1.6.0)
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (75.2.0)
Collecting jedi>=0.16 (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py)
  Downloading jedi-0.19.2-py2.py3-none-any.whl.metadata (22 kB)
Requirement already satisfied: decorator in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (4.4.2)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (3.0.51)
Requirement already satisfied: pygments in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (2.19.1)
Requirement already satisfied: backcall in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.2.0)
Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (4.9.0)
Requirement already satisfied: docstring-parser>=0.15 in /usr/local/lib/python3.11/dist-packages (from jsonargparse[signatures]<5.0,>=4.27.7; extra == "pytorch-extra"->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (0.16)
Collecting typeshed-client>=2.3.0 (from jsonargparse[signatures]<5.0,>=4.27.7; extra == "pytorch-extra"->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py)
  Downloading typeshed_client-2.7.0-py3-none-any.whl.metadata (7.9 kB)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.11/dist-packages (from jsonschema->flask-restx>=1.3.0->localtileserver->geoai-py) (2025.4.1)
Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.11/dist-packages (from jsonschema->flask-restx>=1.3.0->localtileserver->geoai-py) (0.36.2)
Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.11/dist-packages (from jsonschema->flask-restx>=1.3.0->localtileserver->geoai-py) (0.24.0)
Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.11/dist-packages (from jupyter-core!=5.0.*,>=4.12->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (4.3.8)
Collecting python-json-logger>=2.0.4 (from jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading python_json_logger-3.3.0-py3-none-any.whl.metadata (4.0 kB)
Collecting rfc3339-validator (from jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading rfc3339_validator-0.1.4-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting rfc3986-validator>=0.1.1 (from jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading rfc3986_validator-0.1.1-py2.py3-none-any.whl.metadata (1.7 kB)
Requirement already satisfied: bleach!=5.0.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (6.2.0)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.7.1)
Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.3.0)
Requirement already satisfied: mistune<4,>=2.0.3 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (3.1.3)
Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.10.2)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.5.1)
Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.11/dist-packages (from nbformat>=5.3.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (2.21.1)
Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.11/dist-packages (from rich<14.0,>=12.3.0->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (3.0.0)
Requirement already satisfied: protobuf>=3.20 in /usr/local/lib/python3.11/dist-packages (from tensorboardX<3.0,>=2.2->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (5.29.4)
Requirement already satisfied: ptyprocess in /usr/local/lib/python3.11/dist-packages (from terminado>=0.8.3->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.7.0)
Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.11/dist-packages (from widgetsnbextension~=3.6.0->ipywidgets->leafmap->geoai-py) (6.5.7)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4->gdown->leafmap->geoai-py) (2.7)
Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.11/dist-packages (from httpx->rio-tiler->localtileserver->geoai-py) (1.0.9)
Requirement already satisfied: h11>=0.16 in /usr/local/lib/python3.11/dist-packages (from httpcore==1.*->httpx->rio-tiler->localtileserver->geoai-py) (0.16.0)
Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.11/dist-packages (from requests[socks]->gdown->leafmap->geoai-py) (1.7.1)
Requirement already satisfied: webencodings in /usr/local/lib/python3.11/dist-packages (from bleach!=5.0.0->bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.5.1)
Requirement already satisfied: tinycss2<1.5,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.4.0)
Requirement already satisfied: parso<0.9.0,>=0.8.4 in /usr/local/lib/python3.11/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.8.4)
Collecting fqdn (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading fqdn-1.5.1-py3-none-any.whl.metadata (1.4 kB)
Collecting isoduration (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading isoduration-20.11.0-py3-none-any.whl.metadata (5.7 kB)
Requirement already satisfied: jsonpointer>1.13 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (3.0.0)
Collecting uri-template (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading uri_template-1.3.0-py3-none-any.whl.metadata (8.8 kB)
Requirement already satisfied: webcolors>=24.6.0 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (24.11.1)
Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.11/dist-packages (from markdown-it-py>=2.2.0->rich<14.0,>=12.3.0->lightning[pytorch-extra]!=2.3.*,!=2.5.0,>=2->torchgeo->geoai-py) (0.1.2)
Collecting jupyter-client>=7.4.4 (from jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading jupyter_client-7.4.9-py3-none-any.whl.metadata (8.5 kB)
Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->leafmap->geoai-py) (1.3.1)
Requirement already satisfied: entrypoints in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=7.4.4->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (0.4)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.11/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets->leafmap->geoai-py) (0.2.13)
Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (1.17.1)
Requirement already satisfied: pycparser in /usr/local/lib/python3.11/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py) (2.22)
Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.11/dist-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets->leafmap->geoai-py) (0.2.4)
Collecting arrow>=0.15.0 (from isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading arrow-1.3.0-py3-none-any.whl.metadata (7.5 kB)
Collecting types-python-dateutil>=2.8.10 (from arrow>=0.15.0->isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server>=1.24.0->jupyter-server-proxy->geoai-py)
  Downloading types_python_dateutil-2.9.0.20250516-py3-none-any.whl.metadata (2.1 kB)
Downloading geoai_py-0.6.0-py2.py3-none-any.whl (140 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 140.8/140.8 kB 10.2 MB/s eta 0:00:00
Downloading buildingregulariser-0.1.12-py3-none-any.whl (19 kB)
Downloading contextily-1.6.2-py3-none-any.whl (17 kB)
Downloading jupyter_server_proxy-4.4.0-py3-none-any.whl (37 kB)
Downloading leafmap-0.45.0-py2.py3-none-any.whl (547 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 547.7/547.7 kB 33.7 MB/s eta 0:00:00
Downloading localtileserver-0.10.6-py3-none-any.whl (17.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.1/17.1 MB 111.0 MB/s eta 0:00:00
Downloading mapclassify-2.8.1-py3-none-any.whl (59 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 59.1/59.1 kB 5.9 MB/s eta 0:00:00
Downloading maplibre-0.3.3-py3-none-any.whl (1.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 56.6 MB/s eta 0:00:00
Downloading overturemaps-0.14.0-py3-none-any.whl (9.9 kB)
Downloading planetary_computer-1.0.0-py3-none-any.whl (14 kB)
Downloading pystac_client-0.8.6-py3-none-any.whl (41 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.4/41.4 kB 4.4 MB/s eta 0:00:00
Downloading rasterio-1.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.2 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.2/22.2 MB 106.6 MB/s eta 0:00:00
Downloading rioxarray-0.19.0-py3-none-any.whl (62 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.2/62.2 kB 7.8 MB/s eta 0:00:00
Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 4.7 MB/s eta 0:00:00
Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 69.0 MB/s eta 0:00:00
Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 37.7 MB/s eta 0:00:00
Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 51.4 MB/s eta 0:00:00
Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 2.1 MB/s eta 0:00:00
Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 5.4 MB/s eta 0:00:00
Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 12.7 MB/s eta 0:00:00
Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 7.4 MB/s eta 0:00:00
Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 5.5 MB/s eta 0:00:00
Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 103.2 MB/s eta 0:00:00
Downloading torchgeo-0.7.0-py3-none-any.whl (604 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 605.0/605.0 kB 46.1 MB/s eta 0:00:00
Downloading torchinfo-1.8.0-py3-none-any.whl (23 kB)
Downloading cligj-0.7.2-py3-none-any.whl (7.1 kB)
Downloading fiona-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.3/17.3 MB 115.8 MB/s eta 0:00:00
Downloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Downloading flask_restx-1.3.0-py2.py3-none-any.whl (2.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 88.3 MB/s eta 0:00:00
Downloading jupyter_server-2.16.0-py3-none-any.whl (386 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 386.9/386.9 kB 35.2 MB/s eta 0:00:00
Downloading kornia-0.8.1-py2.py3-none-any.whl (1.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 67.3 MB/s eta 0:00:00
Downloading lightly-1.5.20-py3-none-any.whl (851 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 851.6/851.6 kB 59.1 MB/s eta 0:00:00
Downloading lightning-2.5.1.post0-py3-none-any.whl (819 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 819.0/819.0 kB 61.1 MB/s eta 0:00:00
Downloading pystac-1.13.0-py3-none-any.whl (206 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 206.8/206.8 kB 20.5 MB/s eta 0:00:00
Downloading rtree-1.4.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (541 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 541.1/541.1 kB 46.5 MB/s eta 0:00:00
Downloading segmentation_models_pytorch-0.5.0-py3-none-any.whl (154 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 154.8/154.8 kB 17.4 MB/s eta 0:00:00
Downloading simpervisor-1.0.0-py3-none-any.whl (8.3 kB)
Downloading torchmetrics-1.7.1-py3-none-any.whl (961 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 961.5/961.5 kB 62.3 MB/s eta 0:00:00
Downloading affine-2.4.0-py3-none-any.whl (15 kB)
Downloading anywidget-0.9.18-py3-none-any.whl (220 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 220.7/220.7 kB 23.5 MB/s eta 0:00:00
Downloading eval_type_backport-0.2.2-py3-none-any.whl (5.8 kB)
Downloading Flask_Caching-2.3.1-py3-none-any.whl (28 kB)
Downloading flask_cors-6.0.0-py3-none-any.whl (11 kB)
Downloading geojson-3.2.0-py3-none-any.whl (15 kB)
Downloading ipyvuetify-1.11.1-py2.py3-none-any.whl (7.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.7/7.7 MB 119.9 MB/s eta 0:00:00
Downloading mercantile-1.2.1-py3-none-any.whl (14 kB)
Downloading python_dotenv-1.1.0-py3-none-any.whl (20 kB)
Downloading rio_cogeo-5.4.1-py3-none-any.whl (20 kB)
Downloading rio_tiler-7.7.2-py3-none-any.whl (268 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 268.6/268.6 kB 25.6 MB/s eta 0:00:00
Downloading server_thread-0.3.0-py3-none-any.whl (6.6 kB)
Downloading whiteboxgui-2.3.0-py2.py3-none-any.whl (108 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.6/108.6 kB 11.6 MB/s eta 0:00:00
Downloading aenum-3.1.16-py3-none-any.whl (165 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 165.6/165.6 kB 18.2 MB/s eta 0:00:00
Downloading aniso8601-10.0.1-py2.py3-none-any.whl (52 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 52.8/52.8 kB 5.2 MB/s eta 0:00:00
Downloading bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl (76.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.1/76.1 MB 10.0 MB/s eta 0:00:00
Downloading cachelib-0.13.0-py3-none-any.whl (20 kB)
Downloading hydra_core-1.3.2-py3-none-any.whl (154 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 154.5/154.5 kB 15.8 MB/s eta 0:00:00
Downloading ipyvue-1.11.2-py2.py3-none-any.whl (2.7 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 102.1 MB/s eta 0:00:00
Downloading jsonargparse-4.40.0-py3-none-any.whl (224 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 224.3/224.3 kB 22.3 MB/s eta 0:00:00
Downloading jupyter_events-0.12.0-py3-none-any.whl (19 kB)
Downloading jupyter_server_terminals-0.5.3-py3-none-any.whl (13 kB)
Downloading kornia_rs-0.1.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 104.4 MB/s eta 0:00:00
Downloading lightly_utils-0.0.2-py3-none-any.whl (6.4 kB)
Downloading lightning_utilities-0.14.3-py3-none-any.whl (28 kB)
Downloading morecantile-6.2.0-py3-none-any.whl (49 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 49.5/49.5 kB 4.5 MB/s eta 0:00:00
Downloading overrides-7.7.0-py3-none-any.whl (17 kB)
Downloading psygnal-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (842 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 842.5/842.5 kB 57.4 MB/s eta 0:00:00
Downloading pytorch_lightning-2.5.1.post0-py3-none-any.whl (823 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 823.1/823.1 kB 62.5 MB/s eta 0:00:00
Downloading tensorboardX-2.6.2.2-py2.py3-none-any.whl (101 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.7/101.7 kB 9.4 MB/s eta 0:00:00
Downloading color_operations-0.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (195 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 195.2/195.2 kB 19.4 MB/s eta 0:00:00
Downloading uvicorn-0.34.2-py3-none-any.whl (62 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.5/62.5 kB 6.4 MB/s eta 0:00:00
Downloading whitebox-2.3.6-py2.py3-none-any.whl (74 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.0/74.0 kB 7.7 MB/s eta 0:00:00
Downloading jedi-0.19.2-py2.py3-none-any.whl (1.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 77.7 MB/s eta 0:00:00
Downloading jupyter_client-7.4.9-py3-none-any.whl (133 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.5/133.5 kB 13.3 MB/s eta 0:00:00
Downloading python_json_logger-3.3.0-py3-none-any.whl (15 kB)
Downloading rfc3986_validator-0.1.1-py2.py3-none-any.whl (4.2 kB)
Downloading typeshed_client-2.7.0-py3-none-any.whl (624 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 624.4/624.4 kB 48.9 MB/s eta 0:00:00
Downloading rfc3339_validator-0.1.4-py2.py3-none-any.whl (3.5 kB)
Downloading fqdn-1.5.1-py3-none-any.whl (9.1 kB)
Downloading isoduration-20.11.0-py3-none-any.whl (11 kB)
Downloading uri_template-1.3.0-py3-none-any.whl (11 kB)
Downloading arrow-1.3.0-py3-none-any.whl (66 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.4/66.4 kB 6.5 MB/s eta 0:00:00
Downloading types_python_dateutil-2.9.0.20250516-py3-none-any.whl (14 kB)
Installing collected packages: aniso8601, aenum, whitebox, uvicorn, uri-template, typeshed-client, types-python-dateutil, torchinfo, tensorboardX, simpervisor, rtree, rfc3986-validator, rfc3339-validator, python-json-logger, python-dotenv, psygnal, overrides, nvidia-nvjitlink-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, mercantile, lightning-utilities, lightly_utils, kornia_rs, jsonargparse, jedi, geojson, fqdn, eval-type-backport, color-operations, cligj, click-plugins, cachelib, affine, server-thread, rasterio, pystac, overturemaps, nvidia-cusparse-cu12, nvidia-cudnn-cu12, jupyter-server-terminals, jupyter-client, hydra-core, fiona, arrow, nvidia-cusolver-cu12, morecantile, maplibre, mapclassify, isoduration, flask-cors, Flask-Caching, contextily, rioxarray, rio-tiler, rio-cogeo, flask-restx, buildingregulariser, torchmetrics, pystac-client, localtileserver, kornia, jupyter-events, bitsandbytes, pytorch_lightning, planetary-computer, segmentation-models-pytorch, lightning, lightly, jupyter-server, jupyter-server-proxy, torchgeo, ipyvue, anywidget, whiteboxgui, ipyvuetify, leafmap, geoai-py
  Attempting uninstall: nvidia-nvjitlink-cu12
    Found existing installation: nvidia-nvjitlink-cu12 12.5.82
    Uninstalling nvidia-nvjitlink-cu12-12.5.82:
      Successfully uninstalled nvidia-nvjitlink-cu12-12.5.82
  Attempting uninstall: nvidia-curand-cu12
    Found existing installation: nvidia-curand-cu12 10.3.6.82
    Uninstalling nvidia-curand-cu12-10.3.6.82:
      Successfully uninstalled nvidia-curand-cu12-10.3.6.82
  Attempting uninstall: nvidia-cufft-cu12
    Found existing installation: nvidia-cufft-cu12 11.2.3.61
    Uninstalling nvidia-cufft-cu12-11.2.3.61:
      Successfully uninstalled nvidia-cufft-cu12-11.2.3.61
  Attempting uninstall: nvidia-cuda-runtime-cu12
    Found existing installation: nvidia-cuda-runtime-cu12 12.5.82
    Uninstalling nvidia-cuda-runtime-cu12-12.5.82:
      Successfully uninstalled nvidia-cuda-runtime-cu12-12.5.82
  Attempting uninstall: nvidia-cuda-nvrtc-cu12
    Found existing installation: nvidia-cuda-nvrtc-cu12 12.5.82
    Uninstalling nvidia-cuda-nvrtc-cu12-12.5.82:
      Successfully uninstalled nvidia-cuda-nvrtc-cu12-12.5.82
  Attempting uninstall: nvidia-cuda-cupti-cu12
    Found existing installation: nvidia-cuda-cupti-cu12 12.5.82
    Uninstalling nvidia-cuda-cupti-cu12-12.5.82:
      Successfully uninstalled nvidia-cuda-cupti-cu12-12.5.82
  Attempting uninstall: nvidia-cublas-cu12
    Found existing installation: nvidia-cublas-cu12 12.5.3.2
    Uninstalling nvidia-cublas-cu12-12.5.3.2:
      Successfully uninstalled nvidia-cublas-cu12-12.5.3.2
  Attempting uninstall: nvidia-cusparse-cu12
    Found existing installation: nvidia-cusparse-cu12 12.5.1.3
    Uninstalling nvidia-cusparse-cu12-12.5.1.3:
      Successfully uninstalled nvidia-cusparse-cu12-12.5.1.3
  Attempting uninstall: nvidia-cudnn-cu12
    Found existing installation: nvidia-cudnn-cu12 9.3.0.75
    Uninstalling nvidia-cudnn-cu12-9.3.0.75:
      Successfully uninstalled nvidia-cudnn-cu12-9.3.0.75
  Attempting uninstall: jupyter-client
    Found existing installation: jupyter-client 6.1.12
    Uninstalling jupyter-client-6.1.12:
      Successfully uninstalled jupyter-client-6.1.12
  Attempting uninstall: nvidia-cusolver-cu12
    Found existing installation: nvidia-cusolver-cu12 11.6.3.83
    Uninstalling nvidia-cusolver-cu12-11.6.3.83:
      Successfully uninstalled nvidia-cusolver-cu12-11.6.3.83
  Attempting uninstall: jupyter-server
    Found existing installation: jupyter-server 1.16.0
    Uninstalling jupyter-server-1.16.0:
      Successfully uninstalled jupyter-server-1.16.0
Successfully installed Flask-Caching-2.3.1 aenum-3.1.16 affine-2.4.0 aniso8601-10.0.1 anywidget-0.9.18 arrow-1.3.0 bitsandbytes-0.45.5 buildingregulariser-0.1.12 cachelib-0.13.0 click-plugins-1.1.1 cligj-0.7.2 color-operations-0.2.0 contextily-1.6.2 eval-type-backport-0.2.2 fiona-1.10.1 flask-cors-6.0.0 flask-restx-1.3.0 fqdn-1.5.1 geoai-py-0.6.0 geojson-3.2.0 hydra-core-1.3.2 ipyvue-1.11.2 ipyvuetify-1.11.1 isoduration-20.11.0 jedi-0.19.2 jsonargparse-4.40.0 jupyter-client-7.4.9 jupyter-events-0.12.0 jupyter-server-2.16.0 jupyter-server-proxy-4.4.0 jupyter-server-terminals-0.5.3 kornia-0.8.1 kornia_rs-0.1.9 leafmap-0.45.0 lightly-1.5.20 lightly_utils-0.0.2 lightning-2.5.1.post0 lightning-utilities-0.14.3 localtileserver-0.10.6 mapclassify-2.8.1 maplibre-0.3.3 mercantile-1.2.1 morecantile-6.2.0 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nvjitlink-cu12-12.4.127 overrides-7.7.0 overturemaps-0.14.0 planetary-computer-1.0.0 psygnal-0.13.0 pystac-1.13.0 pystac-client-0.8.6 python-dotenv-1.1.0 python-json-logger-3.3.0 pytorch_lightning-2.5.1.post0 rasterio-1.4.3 rfc3339-validator-0.1.4 rfc3986-validator-0.1.1 rio-cogeo-5.4.1 rio-tiler-7.7.2 rioxarray-0.19.0 rtree-1.4.0 segmentation-models-pytorch-0.5.0 server-thread-0.3.0 simpervisor-1.0.0 tensorboardX-2.6.2.2 torchgeo-0.7.0 torchinfo-1.8.0 torchmetrics-1.7.1 types-python-dateutil-2.9.0.20250516 typeshed-client-2.7.0 uri-template-1.3.0 uvicorn-0.34.2 whitebox-2.3.6 whiteboxgui-2.3.0
In [ ]:
!pip install ipysheet
Collecting ipysheet
  Downloading ipysheet-0.7.0-py2.py3-none-any.whl.metadata (4.0 kB)
Requirement already satisfied: ipywidgets<9.0,>=7.5.0 in /usr/local/lib/python3.11/dist-packages (from ipysheet) (7.7.1)
Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (6.17.1)
Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.0)
Requirement already satisfied: traitlets>=4.3.1 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (5.7.1)
Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (3.6.10)
Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (7.34.0)
Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.11/dist-packages (from ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.15)
Requirement already satisfied: debugpy>=1.0 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (1.8.0)
Requirement already satisfied: jupyter-client>=6.1.12 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (7.4.9)
Requirement already satisfied: matplotlib-inline>=0.1 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (0.1.7)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (1.6.0)
Requirement already satisfied: packaging in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (24.2)
Requirement already satisfied: psutil in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (5.9.5)
Requirement already satisfied: pyzmq>=17 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (24.0.1)
Requirement already satisfied: tornado>=6.1 in /usr/local/lib/python3.11/dist-packages (from ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (6.4.2)
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (75.2.0)
Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.19.2)
Requirement already satisfied: decorator in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.4.2)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.51)
Requirement already satisfied: pygments in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.19.1)
Requirement already satisfied: backcall in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.0)
Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.11/dist-packages (from ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.9.0)
Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.11/dist-packages (from widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (6.5.7)
Requirement already satisfied: parso<0.9.0,>=0.8.4 in /usr/local/lib/python3.11/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.8.4)
Requirement already satisfied: entrypoints in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (0.4)
Requirement already satisfied: jupyter-core>=4.9.2 in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (5.7.2)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.11/dist-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (2.9.0.post0)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.1.6)
Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (23.1.0)
Requirement already satisfied: nbformat in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (5.10.4)
Requirement already satisfied: nbconvert>=5 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (7.16.6)
Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.8.3)
Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.18.1)
Requirement already satisfied: prometheus-client in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.21.1)
Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.11/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.1)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.11/dist-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.7.0)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.11/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.13)
Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.11/dist-packages (from jupyter-core>=4.9.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (4.3.8)
Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.11/dist-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.2.4)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.13.4)
Requirement already satisfied: bleach!=5.0.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (6.2.0)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.7.1)
Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.3.0)
Requirement already satisfied: markupsafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.2)
Requirement already satisfied: mistune<4,>=2.0.3 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.1.3)
Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.10.2)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.11/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.5.1)
Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.11/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.21.1)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.11/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.23.0)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<9.0,>=7.5.0->ipysheet) (1.17.0)
Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.11/dist-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (21.2.0)
Requirement already satisfied: webencodings in /usr/local/lib/python3.11/dist-packages (from bleach!=5.0.0->bleach[css]!=5.0.0->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.5.1)
Requirement already satisfied: tinycss2<1.5,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from bleach[css]!=5.0.0->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.4.0)
Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (25.3.0)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2025.4.1)
Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.36.2)
Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.11/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.24.0)
Requirement already satisfied: jupyter-server<3,>=1.8 in /usr/local/lib/python3.11/dist-packages (from notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.16.0)
Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.17.1)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.7)
Requirement already satisfied: typing-extensions>=4.0.0 in /usr/local/lib/python3.11/dist-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.13.2)
Requirement already satisfied: pycparser in /usr/local/lib/python3.11/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.22)
Requirement already satisfied: anyio>=3.1.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (4.9.0)
Requirement already satisfied: jupyter-events>=0.11.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.12.0)
Requirement already satisfied: jupyter-server-terminals>=0.4.4 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.5.3)
Requirement already satisfied: overrides>=5.0 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (7.7.0)
Requirement already satisfied: websocket-client>=1.7 in /usr/local/lib/python3.11/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.8.0)
Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.11/dist-packages (from anyio>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.10)
Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.11/dist-packages (from anyio>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.1)
Requirement already satisfied: python-json-logger>=2.0.4 in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.3.0)
Requirement already satisfied: pyyaml>=5.3 in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (6.0.2)
Requirement already satisfied: rfc3339-validator in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.1.4)
Requirement already satisfied: rfc3986-validator>=0.1.1 in /usr/local/lib/python3.11/dist-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (0.1.1)
Requirement already satisfied: fqdn in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.5.1)
Requirement already satisfied: isoduration in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (20.11.0)
Requirement already satisfied: jsonpointer>1.13 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (3.0.0)
Requirement already satisfied: uri-template in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.0)
Requirement already satisfied: webcolors>=24.6.0 in /usr/local/lib/python3.11/dist-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (24.11.1)
Requirement already satisfied: arrow>=0.15.0 in /usr/local/lib/python3.11/dist-packages (from isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (1.3.0)
Requirement already satisfied: types-python-dateutil>=2.8.10 in /usr/local/lib/python3.11/dist-packages (from arrow>=0.15.0->isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9.0,>=7.5.0->ipysheet) (2.9.0.20250516)
Downloading ipysheet-0.7.0-py2.py3-none-any.whl (3.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.8/3.8 MB 39.0 MB/s eta 0:00:00
Installing collected packages: ipysheet
Successfully installed ipysheet-0.7.0
In [ ]:
from google.colab import output
output.enable_custom_widget_manager()
In [ ]:
import geoai
import leafmap

Let's download the sample data:

In [ ]:
train_raster_url = "https://huggingface.co/datasets/giswqs/geospatial/resolve/main/solar_panels_davis_ca.tif"
train_vector_url = "https://huggingface.co/datasets/giswqs/geospatial/resolve/main/solar_panels_davis_ca.geojson"
test_raster_url = "https://huggingface.co/datasets/giswqs/geospatial/resolve/main/solar_panels_test_davis_ca.tif"
In [ ]:
train_raster_path = geoai.download_file(train_raster_url)
train_vector_path = geoai.download_file(train_vector_url)
test_raster_path = geoai.download_file(test_raster_url)
solar_panels_davis_ca.tif: 100%|██████████| 31.2M/31.2M [00:00<00:00, 63.5MB/s]
solar_panels_davis_ca.geojson: 100%|██████████| 30.0k/30.0k [00:00<00:00, 35.2MB/s]
solar_panels_test_davis_ca.tif: 100%|██████████| 45.4M/45.4M [00:00<00:00, 63.1MB/s]
In [ ]:
geoai.view_vector_interactive(train_vector_path, tiles=train_raster_url)
Out[ ]:
Make this Notebook Trusted to load map: File -> Trust Notebook

After visualizing the data, let's divide the training orthomosaic into 512 x 512 patches:

In [ ]:
out_folder = "output"
tiles = geoai.export_geotiff_tiles(
    in_raster=train_raster_path,
    out_folder=out_folder,
    in_class_data=train_vector_path,
    tile_size=512,
    stride=256,
    buffer_radius=0,
)
Raster info for solar_panels_davis_ca.tif:
  CRS: EPSG:3857
  Dimensions: 6711 x 3242
  Resolution: (0.07464427187774597, 0.07464193859333511)
  Bands: 3
  Bounds: BoundingBox(left=-13556075.706688922, bottom=4657729.5446374295, right=-13555574.76898035, top=4657971.533802349)
Loaded 67 features from solar_panels_davis_ca.geojson
Vector CRS: EPSG:4326
Reprojecting features from EPSG:4326 to EPSG:3857
WARNING: 'class' not found in vector data. Using default class ID 1.
Generated: 312, With features: 137: 100%|██████████| 312/312 [00:15<00:00, 20.39it/s]
------- Export Summary -------
Total tiles exported: 312
Tiles with features: 137 (43.9%)
Average feature pixels per tile: 8422.7
Output saved to: output

------- Georeference Verification -------

Let's visualize the images and masks:

In [ ]:
import matplotlib.pyplot as plt
import rasterio
import os
import random

image_folder = os.path.join(out_folder, 'images')
mask_folder = os.path.join(out_folder, 'labels')

image_files = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith('.tif')]
mask_files = [os.path.join(mask_folder, f) for f in os.listdir(mask_folder) if f.endswith('.tif')]

image_files.sort()
mask_files.sort()

random_numbers = [random.randint(1, len(image_files)) for _ in range(5)] # Example: random numbers between 1 and 100

for i in random_numbers:
    image_path = image_files[i]
    mask_path = mask_files[i]

    # Read the image
    with rasterio.open(image_path) as src_img:
        image_data = src_img.read()

    # Read the mask
    with rasterio.open(mask_path) as src_mask:
        mask_data = src_mask.read()

    image_data = image_data.transpose(1, 2, 0)

    plt.figure(figsize=(10, 5))

    # Display the image
    plt.subplot(1, 2, 1)
    plt.imshow(image_data)
    plt.title(f'Image: {os.path.basename(image_path)}')
    plt.axis('off')

    # Display the mask
    plt.subplot(1, 2, 2)
    plt.imshow(mask_data.squeeze())
    plt.title(f'Mask: {os.path.basename(mask_path)}')
    plt.axis('off')

    plt.tight_layout()
    plt.show()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

We can then train MaskRCNN with the dataset:

In [ ]:
geoai.train_MaskRCNN_model(
    images_dir=f"{out_folder}/images",
    labels_dir=f"{out_folder}/labels",
    output_dir=f"{out_folder}/models",
    num_channels=3,
    pretrained=True,
    batch_size=4,
    num_epochs=100,
    learning_rate=0.005,
    val_split=0.2,
)
Using device: cuda
Found 312 image files and 312 label files
Training on 249 images, validating on 63 images
Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /root/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
100%|██████████| 170M/170M [00:01<00:00, 126MB/s]
Epoch: 0, Batch: 0/63, Loss: 2.5722, Time: 3.44s
Epoch: 0, Batch: 10/63, Loss: 0.5780, Time: 7.99s
Epoch: 0, Batch: 20/63, Loss: 0.3171, Time: 8.23s
Epoch: 0, Batch: 30/63, Loss: 0.1902, Time: 8.25s
Epoch: 0, Batch: 40/63, Loss: 0.4812, Time: 8.29s
Epoch: 0, Batch: 50/63, Loss: 0.4490, Time: 8.47s
Epoch: 0, Batch: 60/63, Loss: 1.4948, Time: 8.30s
Epoch 1/100: Train Loss: 0.5449, Val Loss: inf, Val IoU: 0.3342
Saving best model with IoU: 0.3342
Epoch: 1, Batch: 0/63, Loss: 0.2604, Time: 1.45s
Epoch: 1, Batch: 10/63, Loss: 0.2738, Time: 8.77s
Epoch: 1, Batch: 20/63, Loss: 0.1722, Time: 8.80s
Epoch: 1, Batch: 30/63, Loss: 0.1846, Time: 8.87s
Epoch: 1, Batch: 40/63, Loss: 0.1474, Time: 8.61s
Epoch: 1, Batch: 50/63, Loss: 0.1678, Time: 8.63s
Epoch: 1, Batch: 60/63, Loss: 0.1423, Time: 8.86s
Epoch 2/100: Train Loss: 0.2295, Val Loss: inf, Val IoU: 0.3993
Saving best model with IoU: 0.3993
Epoch: 2, Batch: 0/63, Loss: 0.1169, Time: 1.45s
Epoch: 2, Batch: 10/63, Loss: 0.1745, Time: 8.76s
Epoch: 2, Batch: 20/63, Loss: 0.4036, Time: 8.69s
Epoch: 2, Batch: 30/63, Loss: 0.2527, Time: 8.89s
Epoch: 2, Batch: 40/63, Loss: 0.2512, Time: 8.52s
Epoch: 2, Batch: 50/63, Loss: 0.2089, Time: 8.76s
Epoch: 2, Batch: 60/63, Loss: 0.1137, Time: 8.67s
Epoch 3/100: Train Loss: 0.1884, Val Loss: inf, Val IoU: 0.4529
Saving best model with IoU: 0.4529
Epoch: 3, Batch: 0/63, Loss: 0.2725, Time: 1.42s
Epoch: 3, Batch: 10/63, Loss: 0.1384, Time: 8.80s
Epoch: 3, Batch: 20/63, Loss: 0.1731, Time: 8.49s
Epoch: 3, Batch: 30/63, Loss: 0.1305, Time: 8.70s
Epoch: 3, Batch: 40/63, Loss: 0.1998, Time: 8.87s
Epoch: 3, Batch: 50/63, Loss: 0.1429, Time: 8.88s
Epoch: 3, Batch: 60/63, Loss: 0.4380, Time: 8.67s
Epoch 4/100: Train Loss: 0.1689, Val Loss: inf, Val IoU: 0.3969
Epoch: 4, Batch: 0/63, Loss: 0.1604, Time: 1.60s
Epoch: 4, Batch: 10/63, Loss: 0.1871, Time: 8.76s
Epoch: 4, Batch: 20/63, Loss: 0.0894, Time: 8.66s
Epoch: 4, Batch: 30/63, Loss: 0.1878, Time: 8.84s
Epoch: 4, Batch: 40/63, Loss: 0.0019, Time: 8.74s
Epoch: 4, Batch: 50/63, Loss: 0.1766, Time: 8.77s
Epoch: 4, Batch: 60/63, Loss: 0.3094, Time: 8.72s
Epoch 5/100: Train Loss: 0.1267, Val Loss: inf, Val IoU: 0.7445
Saving best model with IoU: 0.7445
Epoch: 5, Batch: 0/63, Loss: 0.0900, Time: 1.52s
Epoch: 5, Batch: 10/63, Loss: 0.1319, Time: 8.73s
Epoch: 5, Batch: 20/63, Loss: 0.0006, Time: 8.85s
Epoch: 5, Batch: 30/63, Loss: 0.1350, Time: 8.57s
Epoch: 5, Batch: 40/63, Loss: 0.0005, Time: 8.78s
Epoch: 5, Batch: 50/63, Loss: 0.0001, Time: 8.92s
Epoch: 5, Batch: 60/63, Loss: 0.1291, Time: 8.79s
Epoch 6/100: Train Loss: 0.1044, Val Loss: inf, Val IoU: 0.6746
Epoch: 6, Batch: 0/63, Loss: 0.0816, Time: 1.91s
Epoch: 6, Batch: 10/63, Loss: 0.1209, Time: 8.70s
Epoch: 6, Batch: 20/63, Loss: 0.1294, Time: 8.74s
Epoch: 6, Batch: 30/63, Loss: 0.0852, Time: 8.84s
Epoch: 6, Batch: 40/63, Loss: 0.0732, Time: 8.73s
Epoch: 6, Batch: 50/63, Loss: 0.1342, Time: 8.75s
Epoch: 6, Batch: 60/63, Loss: 0.0803, Time: 8.89s
Epoch 7/100: Train Loss: 0.0973, Val Loss: inf, Val IoU: 0.7713
Saving best model with IoU: 0.7713
Epoch: 7, Batch: 0/63, Loss: 0.1198, Time: 1.60s
Epoch: 7, Batch: 10/63, Loss: 0.1328, Time: 8.57s
Epoch: 7, Batch: 20/63, Loss: 0.1378, Time: 9.10s
Epoch: 7, Batch: 30/63, Loss: 0.2076, Time: 8.74s
Epoch: 7, Batch: 40/63, Loss: 0.0835, Time: 8.69s
Epoch: 7, Batch: 50/63, Loss: 0.0784, Time: 8.82s
Epoch: 7, Batch: 60/63, Loss: 0.0590, Time: 8.65s
Epoch 8/100: Train Loss: 0.1059, Val Loss: inf, Val IoU: 0.7561
Epoch: 8, Batch: 0/63, Loss: 0.0001, Time: 1.31s
Epoch: 8, Batch: 10/63, Loss: 0.0749, Time: 8.74s
Epoch: 8, Batch: 20/63, Loss: 0.0693, Time: 8.66s
Epoch: 8, Batch: 30/63, Loss: 0.1116, Time: 8.63s
Epoch: 8, Batch: 40/63, Loss: 0.0816, Time: 8.67s
Epoch: 8, Batch: 50/63, Loss: 0.1443, Time: 9.09s
Epoch: 8, Batch: 60/63, Loss: 0.1058, Time: 8.67s
Epoch 9/100: Train Loss: 0.0909, Val Loss: inf, Val IoU: 0.7699
Epoch: 9, Batch: 0/63, Loss: 0.0533, Time: 1.39s
Epoch: 9, Batch: 10/63, Loss: 0.0012, Time: 8.99s
Epoch: 9, Batch: 20/63, Loss: 0.0644, Time: 8.57s
Epoch: 9, Batch: 30/63, Loss: 0.0701, Time: 8.76s
Epoch: 9, Batch: 40/63, Loss: 0.0697, Time: 8.89s
Epoch: 9, Batch: 50/63, Loss: 0.0582, Time: 8.85s
Epoch: 9, Batch: 60/63, Loss: 0.0745, Time: 8.61s
Epoch 10/100: Train Loss: 0.0919, Val Loss: inf, Val IoU: 0.8366
Saving best model with IoU: 0.8366
Epoch: 10, Batch: 0/63, Loss: 0.1844, Time: 1.57s
Epoch: 10, Batch: 10/63, Loss: 0.0761, Time: 8.72s
Epoch: 10, Batch: 20/63, Loss: 0.0663, Time: 8.68s
Epoch: 10, Batch: 30/63, Loss: 0.0833, Time: 8.80s
Epoch: 10, Batch: 40/63, Loss: 0.1212, Time: 8.95s
Epoch: 10, Batch: 50/63, Loss: 0.1049, Time: 8.95s
Epoch: 10, Batch: 60/63, Loss: 0.0587, Time: 8.68s
Epoch 11/100: Train Loss: 0.0830, Val Loss: inf, Val IoU: 0.8224
Epoch: 11, Batch: 0/63, Loss: 0.0997, Time: 1.42s
Epoch: 11, Batch: 10/63, Loss: 0.0576, Time: 8.57s
Epoch: 11, Batch: 20/63, Loss: 0.0966, Time: 8.82s
Epoch: 11, Batch: 30/63, Loss: 0.0507, Time: 8.84s
Epoch: 11, Batch: 40/63, Loss: 0.0702, Time: 8.73s
Epoch: 11, Batch: 50/63, Loss: 0.0500, Time: 8.84s
Epoch: 11, Batch: 60/63, Loss: 0.0770, Time: 8.85s
Epoch 12/100: Train Loss: 0.0836, Val Loss: inf, Val IoU: 0.8060
Epoch: 12, Batch: 0/63, Loss: 0.0812, Time: 1.68s
Epoch: 12, Batch: 10/63, Loss: 0.0000, Time: 8.82s
Epoch: 12, Batch: 20/63, Loss: 0.0001, Time: 8.66s
Epoch: 12, Batch: 30/63, Loss: 0.1027, Time: 8.96s
Epoch: 12, Batch: 40/63, Loss: 0.0699, Time: 8.69s
Epoch: 12, Batch: 50/63, Loss: 0.1104, Time: 8.92s
Epoch: 12, Batch: 60/63, Loss: 0.0834, Time: 8.66s
Epoch 13/100: Train Loss: 0.0758, Val Loss: inf, Val IoU: 0.8054
Epoch: 13, Batch: 0/63, Loss: 0.0978, Time: 1.97s
Epoch: 13, Batch: 10/63, Loss: 0.0593, Time: 8.86s
Epoch: 13, Batch: 20/63, Loss: 0.0729, Time: 8.95s
Epoch: 13, Batch: 30/63, Loss: 0.0932, Time: 8.90s
Epoch: 13, Batch: 40/63, Loss: 0.0714, Time: 8.50s
Epoch: 13, Batch: 50/63, Loss: 0.0932, Time: 8.75s
Epoch: 13, Batch: 60/63, Loss: 0.0000, Time: 8.74s
Epoch 14/100: Train Loss: 0.0756, Val Loss: inf, Val IoU: 0.8853
Saving best model with IoU: 0.8853
Epoch: 14, Batch: 0/63, Loss: 0.0003, Time: 1.40s
Epoch: 14, Batch: 10/63, Loss: 0.1257, Time: 8.75s
Epoch: 14, Batch: 20/63, Loss: 0.1124, Time: 8.67s
Epoch: 14, Batch: 30/63, Loss: 0.0799, Time: 8.55s
Epoch: 14, Batch: 40/63, Loss: 0.0724, Time: 8.98s
Epoch: 14, Batch: 50/63, Loss: 0.0661, Time: 8.88s
Epoch: 14, Batch: 60/63, Loss: 0.0761, Time: 8.83s
Epoch 15/100: Train Loss: 0.0802, Val Loss: inf, Val IoU: 0.8435
Epoch: 15, Batch: 0/63, Loss: 0.0002, Time: 1.42s
Epoch: 15, Batch: 10/63, Loss: 0.0003, Time: 8.81s
Epoch: 15, Batch: 20/63, Loss: 0.0534, Time: 8.69s
Epoch: 15, Batch: 30/63, Loss: 0.0882, Time: 8.86s
Epoch: 15, Batch: 40/63, Loss: 0.0681, Time: 8.87s
Epoch: 15, Batch: 50/63, Loss: 0.0742, Time: 8.88s
Epoch: 15, Batch: 60/63, Loss: 0.1100, Time: 8.67s
Epoch 16/100: Train Loss: 0.0713, Val Loss: inf, Val IoU: 0.8317
Epoch: 16, Batch: 0/63, Loss: 0.0867, Time: 1.53s
Epoch: 16, Batch: 10/63, Loss: 0.0664, Time: 8.80s
Epoch: 16, Batch: 20/63, Loss: 0.0594, Time: 8.79s
Epoch: 16, Batch: 30/63, Loss: 0.1164, Time: 8.78s
Epoch: 16, Batch: 40/63, Loss: 0.0713, Time: 8.80s
Epoch: 16, Batch: 50/63, Loss: 0.0816, Time: 8.79s
Epoch: 16, Batch: 60/63, Loss: 0.0552, Time: 8.71s
Epoch 17/100: Train Loss: 0.0726, Val Loss: inf, Val IoU: 0.8524
Epoch: 17, Batch: 0/63, Loss: 0.0511, Time: 1.47s
Epoch: 17, Batch: 10/63, Loss: 0.0001, Time: 8.77s
Epoch: 17, Batch: 20/63, Loss: 0.0613, Time: 8.86s
Epoch: 17, Batch: 30/63, Loss: 0.0645, Time: 8.52s
Epoch: 17, Batch: 40/63, Loss: 0.0878, Time: 8.96s
Epoch: 17, Batch: 50/63, Loss: 0.0829, Time: 8.75s
Epoch: 17, Batch: 60/63, Loss: 0.0741, Time: 8.81s
Epoch 18/100: Train Loss: 0.0685, Val Loss: inf, Val IoU: 0.8536
Epoch: 18, Batch: 0/63, Loss: 0.0586, Time: 1.53s
Epoch: 18, Batch: 10/63, Loss: 0.0502, Time: 8.78s
Epoch: 18, Batch: 20/63, Loss: 0.0518, Time: 8.59s
Epoch: 18, Batch: 30/63, Loss: 0.0974, Time: 8.92s
Epoch: 18, Batch: 40/63, Loss: 0.0609, Time: 8.87s
Epoch: 18, Batch: 50/63, Loss: 0.0000, Time: 8.91s
Epoch: 18, Batch: 60/63, Loss: 0.0911, Time: 8.68s
Epoch 19/100: Train Loss: 0.0672, Val Loss: inf, Val IoU: 0.8788
Epoch: 19, Batch: 0/63, Loss: 0.0920, Time: 1.50s
Epoch: 19, Batch: 10/63, Loss: 0.0601, Time: 8.69s
Epoch: 19, Batch: 20/63, Loss: 0.0586, Time: 8.71s
Epoch: 19, Batch: 30/63, Loss: 0.0759, Time: 8.65s
Epoch: 19, Batch: 40/63, Loss: 0.0741, Time: 8.76s
Epoch: 19, Batch: 50/63, Loss: 0.0846, Time: 9.01s
Epoch: 19, Batch: 60/63, Loss: 0.0003, Time: 8.84s
Epoch 20/100: Train Loss: 0.0655, Val Loss: inf, Val IoU: 0.8856
Saving best model with IoU: 0.8856
Epoch: 20, Batch: 0/63, Loss: 0.0988, Time: 1.52s
Epoch: 20, Batch: 10/63, Loss: 0.0688, Time: 8.75s
Epoch: 20, Batch: 20/63, Loss: 0.0591, Time: 8.82s
Epoch: 20, Batch: 30/63, Loss: 0.0906, Time: 8.83s
Epoch: 20, Batch: 40/63, Loss: 0.0756, Time: 8.62s
Epoch: 20, Batch: 50/63, Loss: 0.0557, Time: 8.97s
Epoch: 20, Batch: 60/63, Loss: 0.0585, Time: 8.68s
Epoch 21/100: Train Loss: 0.0658, Val Loss: inf, Val IoU: 0.8531
Epoch: 21, Batch: 0/63, Loss: 0.1002, Time: 1.68s
Epoch: 21, Batch: 10/63, Loss: 0.1059, Time: 8.88s
Epoch: 21, Batch: 20/63, Loss: 0.0724, Time: 8.85s
Epoch: 21, Batch: 30/63, Loss: 0.0358, Time: 8.63s
Epoch: 21, Batch: 40/63, Loss: 0.0343, Time: 8.81s
Epoch: 21, Batch: 50/63, Loss: 0.0537, Time: 8.55s
Epoch: 21, Batch: 60/63, Loss: 0.0751, Time: 8.70s
Epoch 22/100: Train Loss: 0.0660, Val Loss: inf, Val IoU: 0.8804
Epoch: 22, Batch: 0/63, Loss: 0.0933, Time: 1.41s
Epoch: 22, Batch: 10/63, Loss: 0.0672, Time: 8.94s
Epoch: 22, Batch: 20/63, Loss: 0.0528, Time: 8.62s
Epoch: 22, Batch: 30/63, Loss: 0.0901, Time: 8.70s
Epoch: 22, Batch: 40/63, Loss: 0.0778, Time: 8.78s
Epoch: 22, Batch: 50/63, Loss: 0.0599, Time: 8.68s
Epoch: 22, Batch: 60/63, Loss: 0.0551, Time: 8.92s
Epoch 23/100: Train Loss: 0.0638, Val Loss: inf, Val IoU: 0.8550
Epoch: 23, Batch: 0/63, Loss: 0.0425, Time: 1.48s
Epoch: 23, Batch: 10/63, Loss: 0.0740, Time: 8.66s
Epoch: 23, Batch: 20/63, Loss: 0.0648, Time: 8.87s
Epoch: 23, Batch: 30/63, Loss: 0.0996, Time: 8.83s
Epoch: 23, Batch: 40/63, Loss: 0.0758, Time: 8.69s
Epoch: 23, Batch: 50/63, Loss: 0.0811, Time: 8.90s
Epoch: 23, Batch: 60/63, Loss: 0.0536, Time: 8.69s
Epoch 24/100: Train Loss: 0.0653, Val Loss: inf, Val IoU: 0.8534
Epoch: 24, Batch: 0/63, Loss: 0.0571, Time: 1.40s
Epoch: 24, Batch: 10/63, Loss: 0.0856, Time: 8.85s
Epoch: 24, Batch: 20/63, Loss: 0.0493, Time: 8.66s
Epoch: 24, Batch: 30/63, Loss: 0.0887, Time: 8.67s
Epoch: 24, Batch: 40/63, Loss: 0.0593, Time: 9.00s
Epoch: 24, Batch: 50/63, Loss: 0.0608, Time: 8.84s
Epoch: 24, Batch: 60/63, Loss: 0.0466, Time: 8.79s
Epoch 25/100: Train Loss: 0.0624, Val Loss: inf, Val IoU: 0.8547
Epoch: 25, Batch: 0/63, Loss: 0.0436, Time: 1.46s
Epoch: 25, Batch: 10/63, Loss: 0.0002, Time: 8.69s
Epoch: 25, Batch: 20/63, Loss: 0.0849, Time: 8.85s
Epoch: 25, Batch: 30/63, Loss: 0.0763, Time: 8.87s
Epoch: 25, Batch: 40/63, Loss: 0.0669, Time: 8.62s
Epoch: 25, Batch: 50/63, Loss: 0.1031, Time: 8.85s
Epoch: 25, Batch: 60/63, Loss: 0.0666, Time: 8.81s
Epoch 26/100: Train Loss: 0.0612, Val Loss: inf, Val IoU: 0.8548
Epoch: 26, Batch: 0/63, Loss: 0.0540, Time: 1.85s
Epoch: 26, Batch: 10/63, Loss: 0.0528, Time: 8.65s
Epoch: 26, Batch: 20/63, Loss: 0.0627, Time: 8.84s
Epoch: 26, Batch: 30/63, Loss: 0.0749, Time: 8.72s
Epoch: 26, Batch: 40/63, Loss: 0.1049, Time: 8.92s
Epoch: 26, Batch: 50/63, Loss: 0.0940, Time: 8.86s
Epoch: 26, Batch: 60/63, Loss: 0.0423, Time: 8.78s
Epoch 27/100: Train Loss: 0.0617, Val Loss: inf, Val IoU: 0.8544
Epoch: 27, Batch: 0/63, Loss: 0.0701, Time: 1.35s
Epoch: 27, Batch: 10/63, Loss: 0.0762, Time: 8.75s
Epoch: 27, Batch: 20/63, Loss: 0.0619, Time: 8.64s
Epoch: 27, Batch: 30/63, Loss: 0.0960, Time: 8.80s
Epoch: 27, Batch: 40/63, Loss: 0.0000, Time: 8.91s
Epoch: 27, Batch: 50/63, Loss: 0.0532, Time: 8.75s
Epoch: 27, Batch: 60/63, Loss: 0.0816, Time: 9.03s
Epoch 28/100: Train Loss: 0.0604, Val Loss: inf, Val IoU: 0.8810
Epoch: 28, Batch: 0/63, Loss: 0.0000, Time: 1.34s
Epoch: 28, Batch: 10/63, Loss: 0.0685, Time: 9.10s
Epoch: 28, Batch: 20/63, Loss: 0.0741, Time: 8.89s
Epoch: 28, Batch: 30/63, Loss: 0.0001, Time: 8.54s
Epoch: 28, Batch: 40/63, Loss: 0.0458, Time: 8.59s
Epoch: 28, Batch: 50/63, Loss: 0.0649, Time: 8.65s
Epoch: 28, Batch: 60/63, Loss: 0.0757, Time: 8.75s
Epoch 29/100: Train Loss: 0.0595, Val Loss: inf, Val IoU: 0.8760
Epoch: 29, Batch: 0/63, Loss: 0.0768, Time: 1.53s
Epoch: 29, Batch: 10/63, Loss: 0.0634, Time: 8.67s
Epoch: 29, Batch: 20/63, Loss: 0.0729, Time: 8.69s
Epoch: 29, Batch: 30/63, Loss: 0.0000, Time: 8.63s
Epoch: 29, Batch: 40/63, Loss: 0.0722, Time: 8.80s
Epoch: 29, Batch: 50/63, Loss: 0.0674, Time: 8.99s
Epoch: 29, Batch: 60/63, Loss: 0.0814, Time: 8.91s
Epoch 30/100: Train Loss: 0.0577, Val Loss: inf, Val IoU: 0.8779
Epoch: 30, Batch: 0/63, Loss: 0.0516, Time: 1.60s
Epoch: 30, Batch: 10/63, Loss: 0.0607, Time: 8.62s
Epoch: 30, Batch: 20/63, Loss: 0.0916, Time: 8.94s
Epoch: 30, Batch: 30/63, Loss: 0.0734, Time: 8.74s
Epoch: 30, Batch: 40/63, Loss: 0.0383, Time: 8.90s
Epoch: 30, Batch: 50/63, Loss: 0.0585, Time: 8.85s
Epoch: 30, Batch: 60/63, Loss: 0.0504, Time: 8.89s
Epoch 31/100: Train Loss: 0.0586, Val Loss: inf, Val IoU: 0.8523
Epoch: 31, Batch: 0/63, Loss: 0.0748, Time: 1.97s
Epoch: 31, Batch: 10/63, Loss: 0.0744, Time: 8.73s
Epoch: 31, Batch: 20/63, Loss: 0.0682, Time: 8.85s
Epoch: 31, Batch: 30/63, Loss: 0.0594, Time: 8.57s
Epoch: 31, Batch: 40/63, Loss: 0.0668, Time: 8.85s
Epoch: 31, Batch: 50/63, Loss: 0.0587, Time: 8.76s
Epoch: 31, Batch: 60/63, Loss: 0.0484, Time: 8.75s
Epoch 32/100: Train Loss: 0.0588, Val Loss: inf, Val IoU: 0.8806
Epoch: 32, Batch: 0/63, Loss: 0.0534, Time: 1.50s
Epoch: 32, Batch: 10/63, Loss: 0.0675, Time: 8.79s
Epoch: 32, Batch: 20/63, Loss: 0.0834, Time: 8.95s
Epoch: 32, Batch: 30/63, Loss: 0.0559, Time: 9.03s
Epoch: 32, Batch: 40/63, Loss: 0.0514, Time: 8.73s
Epoch: 32, Batch: 50/63, Loss: 0.0469, Time: 8.39s
Epoch: 32, Batch: 60/63, Loss: 0.0798, Time: 8.77s
Epoch 33/100: Train Loss: 0.0552, Val Loss: inf, Val IoU: 0.8794
Epoch: 33, Batch: 0/63, Loss: 0.0917, Time: 1.62s
Epoch: 33, Batch: 10/63, Loss: 0.0661, Time: 8.53s
Epoch: 33, Batch: 20/63, Loss: 0.0591, Time: 8.73s
Epoch: 33, Batch: 30/63, Loss: 0.0532, Time: 8.77s
Epoch: 33, Batch: 40/63, Loss: 0.0565, Time: 8.86s
Epoch: 33, Batch: 50/63, Loss: 0.0739, Time: 8.93s
Epoch: 33, Batch: 60/63, Loss: 0.0557, Time: 8.80s
Epoch 34/100: Train Loss: 0.0590, Val Loss: inf, Val IoU: 0.8820
Epoch: 34, Batch: 0/63, Loss: 0.0818, Time: 1.37s
Epoch: 34, Batch: 10/63, Loss: 0.0621, Time: 8.93s
Epoch: 34, Batch: 20/63, Loss: 0.0516, Time: 8.69s
Epoch: 34, Batch: 30/63, Loss: 0.0673, Time: 8.68s
Epoch: 34, Batch: 40/63, Loss: 0.0964, Time: 8.74s
Epoch: 34, Batch: 50/63, Loss: 0.0711, Time: 8.91s
Epoch: 34, Batch: 60/63, Loss: 0.0735, Time: 8.80s
Epoch 35/100: Train Loss: 0.0591, Val Loss: inf, Val IoU: 0.8853
Epoch: 35, Batch: 0/63, Loss: 0.0849, Time: 1.64s
Epoch: 35, Batch: 10/63, Loss: 0.0778, Time: 8.58s
Epoch: 35, Batch: 20/63, Loss: 0.0660, Time: 8.73s
Epoch: 35, Batch: 30/63, Loss: 0.0637, Time: 8.63s
Epoch: 35, Batch: 40/63, Loss: 0.0753, Time: 9.05s
Epoch: 35, Batch: 50/63, Loss: 0.0728, Time: 8.79s
Epoch: 35, Batch: 60/63, Loss: 0.0580, Time: 8.66s
Epoch 36/100: Train Loss: 0.0576, Val Loss: inf, Val IoU: 0.8804
Epoch: 36, Batch: 0/63, Loss: 0.0437, Time: 1.36s
Epoch: 36, Batch: 10/63, Loss: 0.0569, Time: 8.94s
Epoch: 36, Batch: 20/63, Loss: 0.0596, Time: 8.83s
Epoch: 36, Batch: 30/63, Loss: 0.0336, Time: 8.61s
Epoch: 36, Batch: 40/63, Loss: 0.0914, Time: 8.77s
Epoch: 36, Batch: 50/63, Loss: 0.0606, Time: 8.98s
Epoch: 36, Batch: 60/63, Loss: 0.0000, Time: 8.67s
Epoch 37/100: Train Loss: 0.0555, Val Loss: inf, Val IoU: 0.8866
Saving best model with IoU: 0.8866
Epoch: 37, Batch: 0/63, Loss: 0.0434, Time: 1.88s
Epoch: 37, Batch: 10/63, Loss: 0.0857, Time: 8.78s
Epoch: 37, Batch: 20/63, Loss: 0.0367, Time: 8.65s
Epoch: 37, Batch: 30/63, Loss: 0.0479, Time: 8.83s
Epoch: 37, Batch: 40/63, Loss: 0.0511, Time: 8.87s
Epoch: 37, Batch: 50/63, Loss: 0.0751, Time: 8.94s
Epoch: 37, Batch: 60/63, Loss: 0.0708, Time: 8.62s
Epoch 38/100: Train Loss: 0.0573, Val Loss: inf, Val IoU: 0.8827
Epoch: 38, Batch: 0/63, Loss: 0.0705, Time: 1.84s
Epoch: 38, Batch: 10/63, Loss: 0.0538, Time: 8.67s
Epoch: 38, Batch: 20/63, Loss: 0.0561, Time: 8.77s
Epoch: 38, Batch: 30/63, Loss: 0.0001, Time: 8.53s
Epoch: 38, Batch: 40/63, Loss: 0.0668, Time: 8.91s
Epoch: 38, Batch: 50/63, Loss: 0.0701, Time: 9.09s
Epoch: 38, Batch: 60/63, Loss: 0.0000, Time: 8.67s
Epoch 39/100: Train Loss: 0.0561, Val Loss: inf, Val IoU: 0.8780
Epoch: 39, Batch: 0/63, Loss: 0.0450, Time: 1.36s
Epoch: 39, Batch: 10/63, Loss: 0.0529, Time: 9.11s
Epoch: 39, Batch: 20/63, Loss: 0.0740, Time: 8.83s
Epoch: 39, Batch: 30/63, Loss: 0.0582, Time: 8.60s
Epoch: 39, Batch: 40/63, Loss: 0.0716, Time: 8.79s
Epoch: 39, Batch: 50/63, Loss: 0.0643, Time: 8.75s
Epoch: 39, Batch: 60/63, Loss: 0.0445, Time: 8.69s
Epoch 40/100: Train Loss: 0.0556, Val Loss: inf, Val IoU: 0.8851
Epoch: 40, Batch: 0/63, Loss: 0.0439, Time: 1.64s
Epoch: 40, Batch: 10/63, Loss: 0.0833, Time: 8.77s
Epoch: 40, Batch: 20/63, Loss: 0.0000, Time: 8.81s
Epoch: 40, Batch: 30/63, Loss: 0.0659, Time: 8.93s
Epoch: 40, Batch: 40/63, Loss: 0.0471, Time: 8.81s
Epoch: 40, Batch: 50/63, Loss: 0.0575, Time: 8.85s
Epoch: 40, Batch: 60/63, Loss: 0.0001, Time: 8.56s
Epoch 41/100: Train Loss: 0.0545, Val Loss: inf, Val IoU: 0.8855
Epoch: 41, Batch: 0/63, Loss: 0.0738, Time: 1.46s
Epoch: 41, Batch: 10/63, Loss: 0.0718, Time: 8.85s
Epoch: 41, Batch: 20/63, Loss: 0.0683, Time: 8.89s
Epoch: 41, Batch: 30/63, Loss: 0.0360, Time: 8.72s
Epoch: 41, Batch: 40/63, Loss: 0.0462, Time: 8.77s
Epoch: 41, Batch: 50/63, Loss: 0.0779, Time: 8.83s
Epoch: 41, Batch: 60/63, Loss: 0.0860, Time: 8.74s
Epoch 42/100: Train Loss: 0.0566, Val Loss: inf, Val IoU: 0.8841
Epoch: 42, Batch: 0/63, Loss: 0.0000, Time: 1.46s
Epoch: 42, Batch: 10/63, Loss: 0.0000, Time: 8.64s
Epoch: 42, Batch: 20/63, Loss: 0.0906, Time: 8.82s
Epoch: 42, Batch: 30/63, Loss: 0.0419, Time: 8.82s
Epoch: 42, Batch: 40/63, Loss: 0.0768, Time: 8.88s
Epoch: 42, Batch: 50/63, Loss: 0.0598, Time: 8.92s
Epoch: 42, Batch: 60/63, Loss: 0.0644, Time: 8.64s
Epoch 43/100: Train Loss: 0.0571, Val Loss: inf, Val IoU: 0.8867
Saving best model with IoU: 0.8867
Epoch: 43, Batch: 0/63, Loss: 0.0515, Time: 1.49s
Epoch: 43, Batch: 10/63, Loss: 0.0001, Time: 8.69s
Epoch: 43, Batch: 20/63, Loss: 0.0959, Time: 8.91s
Epoch: 43, Batch: 30/63, Loss: 0.0670, Time: 8.89s
Epoch: 43, Batch: 40/63, Loss: 0.0797, Time: 8.73s
Epoch: 43, Batch: 50/63, Loss: 0.0425, Time: 8.69s
Epoch: 43, Batch: 60/63, Loss: 0.0000, Time: 8.78s
Epoch 44/100: Train Loss: 0.0554, Val Loss: inf, Val IoU: 0.8834
Epoch: 44, Batch: 0/63, Loss: 0.0659, Time: 2.02s
Epoch: 44, Batch: 10/63, Loss: 0.0570, Time: 8.53s
Epoch: 44, Batch: 20/63, Loss: 0.0586, Time: 9.06s
Epoch: 44, Batch: 30/63, Loss: 0.0476, Time: 8.73s
Epoch: 44, Batch: 40/63, Loss: 0.0520, Time: 8.79s
Epoch: 44, Batch: 50/63, Loss: 0.0659, Time: 8.87s
Epoch: 44, Batch: 60/63, Loss: 0.0000, Time: 8.68s
Epoch 45/100: Train Loss: 0.0548, Val Loss: inf, Val IoU: 0.8839
Epoch: 45, Batch: 0/63, Loss: 0.0534, Time: 1.58s
Epoch: 45, Batch: 10/63, Loss: 0.0552, Time: 8.72s
Epoch: 45, Batch: 20/63, Loss: 0.0517, Time: 8.86s
Epoch: 45, Batch: 30/63, Loss: 0.0847, Time: 8.75s
Epoch: 45, Batch: 40/63, Loss: 0.0632, Time: 8.84s
Epoch: 45, Batch: 50/63, Loss: 0.0728, Time: 8.84s
Epoch: 45, Batch: 60/63, Loss: 0.0739, Time: 8.67s
Epoch 46/100: Train Loss: 0.0570, Val Loss: inf, Val IoU: 0.8899
Saving best model with IoU: 0.8899
Epoch: 46, Batch: 0/63, Loss: 0.0618, Time: 1.58s
Epoch: 46, Batch: 10/63, Loss: 0.0362, Time: 8.77s
Epoch: 46, Batch: 20/63, Loss: 0.0623, Time: 8.65s
Epoch: 46, Batch: 30/63, Loss: 0.0008, Time: 9.04s
Epoch: 46, Batch: 40/63, Loss: 0.0476, Time: 8.74s
Epoch: 46, Batch: 50/63, Loss: 0.0573, Time: 8.70s
Epoch: 46, Batch: 60/63, Loss: 0.0624, Time: 8.78s
Epoch 47/100: Train Loss: 0.0553, Val Loss: inf, Val IoU: 0.8792
Epoch: 47, Batch: 0/63, Loss: 0.0791, Time: 1.52s
Epoch: 47, Batch: 10/63, Loss: 0.0527, Time: 8.82s
Epoch: 47, Batch: 20/63, Loss: 0.0576, Time: 8.87s
Epoch: 47, Batch: 30/63, Loss: 0.0000, Time: 8.54s
Epoch: 47, Batch: 40/63, Loss: 0.0739, Time: 8.83s
Epoch: 47, Batch: 50/63, Loss: 0.0638, Time: 8.77s
Epoch: 47, Batch: 60/63, Loss: 0.0622, Time: 8.92s
Epoch 48/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8850
Epoch: 48, Batch: 0/63, Loss: 0.0598, Time: 1.44s
Epoch: 48, Batch: 10/63, Loss: 0.0463, Time: 8.73s
Epoch: 48, Batch: 20/63, Loss: 0.0651, Time: 8.70s
Epoch: 48, Batch: 30/63, Loss: 0.0783, Time: 8.90s
Epoch: 48, Batch: 40/63, Loss: 0.0422, Time: 8.76s
Epoch: 48, Batch: 50/63, Loss: 0.0650, Time: 8.81s
Epoch: 48, Batch: 60/63, Loss: 0.0474, Time: 8.74s
Epoch 49/100: Train Loss: 0.0566, Val Loss: inf, Val IoU: 0.8796
Epoch: 49, Batch: 0/63, Loss: 0.0000, Time: 1.33s
Epoch: 49, Batch: 10/63, Loss: 0.0694, Time: 8.78s
Epoch: 49, Batch: 20/63, Loss: 0.0435, Time: 8.74s
Epoch: 49, Batch: 30/63, Loss: 0.0000, Time: 8.93s
Epoch: 49, Batch: 40/63, Loss: 0.0615, Time: 8.87s
Epoch: 49, Batch: 50/63, Loss: 0.0674, Time: 8.77s
Epoch: 49, Batch: 60/63, Loss: 0.0685, Time: 8.67s
Epoch 50/100: Train Loss: 0.0504, Val Loss: inf, Val IoU: 0.8816
Epoch: 50, Batch: 0/63, Loss: 0.0742, Time: 2.04s
Epoch: 50, Batch: 10/63, Loss: 0.0646, Time: 8.88s
Epoch: 50, Batch: 20/63, Loss: 0.0427, Time: 8.78s
Epoch: 50, Batch: 30/63, Loss: 0.0631, Time: 8.56s
Epoch: 50, Batch: 40/63, Loss: 0.0000, Time: 9.00s
Epoch: 50, Batch: 50/63, Loss: 0.0000, Time: 8.70s
Epoch: 50, Batch: 60/63, Loss: 0.0529, Time: 8.89s
Epoch 51/100: Train Loss: 0.0530, Val Loss: inf, Val IoU: 0.8865
Epoch: 51, Batch: 0/63, Loss: 0.0530, Time: 1.68s
Epoch: 51, Batch: 10/63, Loss: 0.0657, Time: 8.56s
Epoch: 51, Batch: 20/63, Loss: 0.0000, Time: 8.66s
Epoch: 51, Batch: 30/63, Loss: 0.0667, Time: 8.75s
Epoch: 51, Batch: 40/63, Loss: 0.0696, Time: 8.85s
Epoch: 51, Batch: 50/63, Loss: 0.0639, Time: 8.90s
Epoch: 51, Batch: 60/63, Loss: 0.0696, Time: 8.92s
Epoch 52/100: Train Loss: 0.0554, Val Loss: inf, Val IoU: 0.8863
Epoch: 52, Batch: 0/63, Loss: 0.0601, Time: 1.46s
Epoch: 52, Batch: 10/63, Loss: 0.0728, Time: 8.78s
Epoch: 52, Batch: 20/63, Loss: 0.0698, Time: 8.73s
Epoch: 52, Batch: 30/63, Loss: 0.0696, Time: 8.85s
Epoch: 52, Batch: 40/63, Loss: 0.0001, Time: 8.77s
Epoch: 52, Batch: 50/63, Loss: 0.0563, Time: 8.92s
Epoch: 52, Batch: 60/63, Loss: 0.0661, Time: 8.70s
Epoch 53/100: Train Loss: 0.0532, Val Loss: inf, Val IoU: 0.8863
Epoch: 53, Batch: 0/63, Loss: 0.0550, Time: 1.55s
Epoch: 53, Batch: 10/63, Loss: 0.0485, Time: 8.94s
Epoch: 53, Batch: 20/63, Loss: 0.0697, Time: 8.71s
Epoch: 53, Batch: 30/63, Loss: 0.0857, Time: 9.12s
Epoch: 53, Batch: 40/63, Loss: 0.0665, Time: 8.93s
Epoch: 53, Batch: 50/63, Loss: 0.0555, Time: 8.47s
Epoch: 53, Batch: 60/63, Loss: 0.0595, Time: 8.58s
Epoch 54/100: Train Loss: 0.0543, Val Loss: inf, Val IoU: 0.8799
Epoch: 54, Batch: 0/63, Loss: 0.0532, Time: 1.53s
Epoch: 54, Batch: 10/63, Loss: 0.0634, Time: 8.69s
Epoch: 54, Batch: 20/63, Loss: 0.0785, Time: 8.96s
Epoch: 54, Batch: 30/63, Loss: 0.0486, Time: 8.88s
Epoch: 54, Batch: 40/63, Loss: 0.0576, Time: 8.56s
Epoch: 54, Batch: 50/63, Loss: 0.0350, Time: 8.80s
Epoch: 54, Batch: 60/63, Loss: 0.0473, Time: 8.77s
Epoch 55/100: Train Loss: 0.0535, Val Loss: inf, Val IoU: 0.8813
Epoch: 55, Batch: 0/63, Loss: 0.0631, Time: 1.43s
Epoch: 55, Batch: 10/63, Loss: 0.0702, Time: 8.79s
Epoch: 55, Batch: 20/63, Loss: 0.0789, Time: 9.13s
Epoch: 55, Batch: 30/63, Loss: 0.0638, Time: 8.62s
Epoch: 55, Batch: 40/63, Loss: 0.0573, Time: 8.65s
Epoch: 55, Batch: 50/63, Loss: 0.0699, Time: 8.72s
Epoch: 55, Batch: 60/63, Loss: 0.0611, Time: 8.70s
Epoch 56/100: Train Loss: 0.0552, Val Loss: inf, Val IoU: 0.8825
Epoch: 56, Batch: 0/63, Loss: 0.0442, Time: 1.48s
Epoch: 56, Batch: 10/63, Loss: 0.0000, Time: 8.70s
Epoch: 56, Batch: 20/63, Loss: 0.0000, Time: 8.93s
Epoch: 56, Batch: 30/63, Loss: 0.0776, Time: 8.66s
Epoch: 56, Batch: 40/63, Loss: 0.0640, Time: 8.79s
Epoch: 56, Batch: 50/63, Loss: 0.0511, Time: 9.13s
Epoch: 56, Batch: 60/63, Loss: 0.0406, Time: 8.57s
Epoch 57/100: Train Loss: 0.0548, Val Loss: inf, Val IoU: 0.8917
Saving best model with IoU: 0.8917
Epoch: 57, Batch: 0/63, Loss: 0.0695, Time: 1.91s
Epoch: 57, Batch: 10/63, Loss: 0.0730, Time: 8.78s
Epoch: 57, Batch: 20/63, Loss: 0.0453, Time: 8.95s
Epoch: 57, Batch: 30/63, Loss: 0.0000, Time: 8.69s
Epoch: 57, Batch: 40/63, Loss: 0.0722, Time: 8.68s
Epoch: 57, Batch: 50/63, Loss: 0.0547, Time: 8.98s
Epoch: 57, Batch: 60/63, Loss: 0.0444, Time: 8.58s
Epoch 58/100: Train Loss: 0.0526, Val Loss: inf, Val IoU: 0.8871
Epoch: 58, Batch: 0/63, Loss: 0.0000, Time: 1.56s
Epoch: 58, Batch: 10/63, Loss: 0.0551, Time: 8.77s
Epoch: 58, Batch: 20/63, Loss: 0.0485, Time: 8.69s
Epoch: 58, Batch: 30/63, Loss: 0.0000, Time: 8.87s
Epoch: 58, Batch: 40/63, Loss: 0.0654, Time: 8.56s
Epoch: 58, Batch: 50/63, Loss: 0.0000, Time: 8.77s
Epoch: 58, Batch: 60/63, Loss: 0.0575, Time: 9.02s
Epoch 59/100: Train Loss: 0.0532, Val Loss: inf, Val IoU: 0.8882
Epoch: 59, Batch: 0/63, Loss: 0.0000, Time: 1.43s
Epoch: 59, Batch: 10/63, Loss: 0.0602, Time: 8.81s
Epoch: 59, Batch: 20/63, Loss: 0.0693, Time: 8.89s
Epoch: 59, Batch: 30/63, Loss: 0.0535, Time: 8.91s
Epoch: 59, Batch: 40/63, Loss: 0.0465, Time: 8.69s
Epoch: 59, Batch: 50/63, Loss: 0.0603, Time: 8.86s
Epoch: 59, Batch: 60/63, Loss: 0.0856, Time: 8.63s
Epoch 60/100: Train Loss: 0.0550, Val Loss: inf, Val IoU: 0.8843
Epoch: 60, Batch: 0/63, Loss: 0.0525, Time: 1.65s
Epoch: 60, Batch: 10/63, Loss: 0.0596, Time: 8.49s
Epoch: 60, Batch: 20/63, Loss: 0.0588, Time: 8.68s
Epoch: 60, Batch: 30/63, Loss: 0.0491, Time: 8.95s
Epoch: 60, Batch: 40/63, Loss: 0.0635, Time: 9.02s
Epoch: 60, Batch: 50/63, Loss: 0.0769, Time: 8.72s
Epoch: 60, Batch: 60/63, Loss: 0.0489, Time: 8.69s
Epoch 61/100: Train Loss: 0.0552, Val Loss: inf, Val IoU: 0.8891
Epoch: 61, Batch: 0/63, Loss: 0.0601, Time: 1.48s
Epoch: 61, Batch: 10/63, Loss: 0.0522, Time: 8.74s
Epoch: 61, Batch: 20/63, Loss: 0.0558, Time: 8.79s
Epoch: 61, Batch: 30/63, Loss: 0.0635, Time: 9.06s
Epoch: 61, Batch: 40/63, Loss: 0.0482, Time: 8.72s
Epoch: 61, Batch: 50/63, Loss: 0.0657, Time: 8.73s
Epoch: 61, Batch: 60/63, Loss: 0.0514, Time: 8.67s
Epoch 62/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8936
Saving best model with IoU: 0.8936
Epoch: 62, Batch: 0/63, Loss: 0.0543, Time: 1.43s
Epoch: 62, Batch: 10/63, Loss: 0.0530, Time: 8.94s
Epoch: 62, Batch: 20/63, Loss: 0.0703, Time: 8.73s
Epoch: 62, Batch: 30/63, Loss: 0.0000, Time: 8.72s
Epoch: 62, Batch: 40/63, Loss: 0.0352, Time: 8.94s
Epoch: 62, Batch: 50/63, Loss: 0.0567, Time: 8.81s
Epoch: 62, Batch: 60/63, Loss: 0.0688, Time: 8.57s
Epoch 63/100: Train Loss: 0.0533, Val Loss: inf, Val IoU: 0.8891
Epoch: 63, Batch: 0/63, Loss: 0.0558, Time: 1.57s
Epoch: 63, Batch: 10/63, Loss: 0.0678, Time: 8.82s
Epoch: 63, Batch: 20/63, Loss: 0.0490, Time: 8.81s
Epoch: 63, Batch: 30/63, Loss: 0.0636, Time: 8.80s
Epoch: 63, Batch: 40/63, Loss: 0.0473, Time: 8.67s
Epoch: 63, Batch: 50/63, Loss: 0.0738, Time: 8.69s
Epoch: 63, Batch: 60/63, Loss: 0.0000, Time: 8.92s
Epoch 64/100: Train Loss: 0.0563, Val Loss: inf, Val IoU: 0.8896
Epoch: 64, Batch: 0/63, Loss: 0.0745, Time: 2.05s
Epoch: 64, Batch: 10/63, Loss: 0.0653, Time: 8.68s
Epoch: 64, Batch: 20/63, Loss: 0.0519, Time: 8.59s
Epoch: 64, Batch: 30/63, Loss: 0.0003, Time: 8.90s
Epoch: 64, Batch: 40/63, Loss: 0.0739, Time: 8.73s
Epoch: 64, Batch: 50/63, Loss: 0.0460, Time: 8.92s
Epoch: 64, Batch: 60/63, Loss: 0.0461, Time: 8.77s
Epoch 65/100: Train Loss: 0.0524, Val Loss: inf, Val IoU: 0.8831
Epoch: 65, Batch: 0/63, Loss: 0.0626, Time: 1.35s
Epoch: 65, Batch: 10/63, Loss: 0.0580, Time: 8.71s
Epoch: 65, Batch: 20/63, Loss: 0.0473, Time: 8.78s
Epoch: 65, Batch: 30/63, Loss: 0.0984, Time: 8.62s
Epoch: 65, Batch: 40/63, Loss: 0.0604, Time: 8.84s
Epoch: 65, Batch: 50/63, Loss: 0.0644, Time: 8.89s
Epoch: 65, Batch: 60/63, Loss: 0.0846, Time: 8.84s
Epoch 66/100: Train Loss: 0.0559, Val Loss: inf, Val IoU: 0.8898
Epoch: 66, Batch: 0/63, Loss: 0.0630, Time: 1.41s
Epoch: 66, Batch: 10/63, Loss: 0.0601, Time: 8.78s
Epoch: 66, Batch: 20/63, Loss: 0.0393, Time: 8.60s
Epoch: 66, Batch: 30/63, Loss: 0.0532, Time: 8.88s
Epoch: 66, Batch: 40/63, Loss: 0.0525, Time: 8.76s
Epoch: 66, Batch: 50/63, Loss: 0.0490, Time: 8.64s
Epoch: 66, Batch: 60/63, Loss: 0.0726, Time: 8.91s
Epoch 67/100: Train Loss: 0.0537, Val Loss: inf, Val IoU: 0.8893
Epoch: 67, Batch: 0/63, Loss: 0.0728, Time: 1.48s
Epoch: 67, Batch: 10/63, Loss: 0.0632, Time: 8.70s
Epoch: 67, Batch: 20/63, Loss: 0.0577, Time: 8.87s
Epoch: 67, Batch: 30/63, Loss: 0.0679, Time: 8.55s
Epoch: 67, Batch: 40/63, Loss: 0.0002, Time: 8.59s
Epoch: 67, Batch: 50/63, Loss: 0.0776, Time: 9.15s
Epoch: 67, Batch: 60/63, Loss: 0.0373, Time: 8.68s
Epoch 68/100: Train Loss: 0.0530, Val Loss: inf, Val IoU: 0.8915
Epoch: 68, Batch: 0/63, Loss: 0.0000, Time: 1.35s
Epoch: 68, Batch: 10/63, Loss: 0.0888, Time: 8.96s
Epoch: 68, Batch: 20/63, Loss: 0.0427, Time: 8.74s
Epoch: 68, Batch: 30/63, Loss: 0.0536, Time: 8.79s
Epoch: 68, Batch: 40/63, Loss: 0.0570, Time: 8.85s
Epoch: 68, Batch: 50/63, Loss: 0.0679, Time: 8.66s
Epoch: 68, Batch: 60/63, Loss: 0.0567, Time: 8.71s
Epoch 69/100: Train Loss: 0.0547, Val Loss: inf, Val IoU: 0.8847
Epoch: 69, Batch: 0/63, Loss: 0.0003, Time: 1.34s
Epoch: 69, Batch: 10/63, Loss: 0.0000, Time: 8.73s
Epoch: 69, Batch: 20/63, Loss: 0.0741, Time: 8.82s
Epoch: 69, Batch: 30/63, Loss: 0.0645, Time: 8.68s
Epoch: 69, Batch: 40/63, Loss: 0.0383, Time: 8.78s
Epoch: 69, Batch: 50/63, Loss: 0.0557, Time: 9.06s
Epoch: 69, Batch: 60/63, Loss: 0.0399, Time: 8.67s
Epoch 70/100: Train Loss: 0.0520, Val Loss: inf, Val IoU: 0.8852
Epoch: 70, Batch: 0/63, Loss: 0.0718, Time: 1.67s
Epoch: 70, Batch: 10/63, Loss: 0.0652, Time: 8.76s
Epoch: 70, Batch: 20/63, Loss: 0.0520, Time: 8.69s
Epoch: 70, Batch: 30/63, Loss: 0.0000, Time: 8.72s
Epoch: 70, Batch: 40/63, Loss: 0.0487, Time: 8.90s
Epoch: 70, Batch: 50/63, Loss: 0.0387, Time: 8.76s
Epoch: 70, Batch: 60/63, Loss: 0.0528, Time: 8.90s
Epoch 71/100: Train Loss: 0.0557, Val Loss: inf, Val IoU: 0.8852
Epoch: 71, Batch: 0/63, Loss: 0.0574, Time: 1.52s
Epoch: 71, Batch: 10/63, Loss: 0.0728, Time: 8.88s
Epoch: 71, Batch: 20/63, Loss: 0.0522, Time: 8.65s
Epoch: 71, Batch: 30/63, Loss: 0.0001, Time: 8.73s
Epoch: 71, Batch: 40/63, Loss: 0.0565, Time: 8.86s
Epoch: 71, Batch: 50/63, Loss: 0.0650, Time: 8.68s
Epoch: 71, Batch: 60/63, Loss: 0.0540, Time: 8.89s
Epoch 72/100: Train Loss: 0.0537, Val Loss: inf, Val IoU: 0.8887
Epoch: 72, Batch: 0/63, Loss: 0.0609, Time: 1.55s
Epoch: 72, Batch: 10/63, Loss: 0.0553, Time: 8.67s
Epoch: 72, Batch: 20/63, Loss: 0.0486, Time: 9.05s
Epoch: 72, Batch: 30/63, Loss: 0.0696, Time: 8.66s
Epoch: 72, Batch: 40/63, Loss: 0.0476, Time: 8.92s
Epoch: 72, Batch: 50/63, Loss: 0.0509, Time: 8.73s
Epoch: 72, Batch: 60/63, Loss: 0.0525, Time: 8.67s
Epoch 73/100: Train Loss: 0.0551, Val Loss: inf, Val IoU: 0.8883
Epoch: 73, Batch: 0/63, Loss: 0.0763, Time: 1.44s
Epoch: 73, Batch: 10/63, Loss: 0.0769, Time: 8.93s
Epoch: 73, Batch: 20/63, Loss: 0.0606, Time: 8.78s
Epoch: 73, Batch: 30/63, Loss: 0.0643, Time: 8.75s
Epoch: 73, Batch: 40/63, Loss: 0.0000, Time: 8.45s
Epoch: 73, Batch: 50/63, Loss: 0.0847, Time: 8.91s
Epoch: 73, Batch: 60/63, Loss: 0.0561, Time: 8.82s
Epoch 74/100: Train Loss: 0.0522, Val Loss: inf, Val IoU: 0.8896
Epoch: 74, Batch: 0/63, Loss: 0.0601, Time: 1.36s
Epoch: 74, Batch: 10/63, Loss: 0.0634, Time: 8.85s
Epoch: 74, Batch: 20/63, Loss: 0.0624, Time: 8.77s
Epoch: 74, Batch: 30/63, Loss: 0.0433, Time: 8.68s
Epoch: 74, Batch: 40/63, Loss: 0.0682, Time: 8.70s
Epoch: 74, Batch: 50/63, Loss: 0.0530, Time: 8.95s
Epoch: 74, Batch: 60/63, Loss: 0.0493, Time: 8.75s
Epoch 75/100: Train Loss: 0.0533, Val Loss: inf, Val IoU: 0.8906
Epoch: 75, Batch: 0/63, Loss: 0.0508, Time: 1.92s
Epoch: 75, Batch: 10/63, Loss: 0.0582, Time: 8.86s
Epoch: 75, Batch: 20/63, Loss: 0.0453, Time: 8.69s
Epoch: 75, Batch: 30/63, Loss: 0.0000, Time: 8.84s
Epoch: 75, Batch: 40/63, Loss: 0.0688, Time: 8.79s
Epoch: 75, Batch: 50/63, Loss: 0.0723, Time: 8.84s
Epoch: 75, Batch: 60/63, Loss: 0.0586, Time: 8.73s
Epoch 76/100: Train Loss: 0.0486, Val Loss: inf, Val IoU: 0.8895
Epoch: 76, Batch: 0/63, Loss: 0.0512, Time: 1.39s
Epoch: 76, Batch: 10/63, Loss: 0.0505, Time: 8.85s
Epoch: 76, Batch: 20/63, Loss: 0.0525, Time: 8.81s
Epoch: 76, Batch: 30/63, Loss: 0.0714, Time: 8.79s
Epoch: 76, Batch: 40/63, Loss: 0.0000, Time: 8.71s
Epoch: 76, Batch: 50/63, Loss: 0.0001, Time: 8.75s
Epoch: 76, Batch: 60/63, Loss: 0.0518, Time: 8.64s
Epoch 77/100: Train Loss: 0.0499, Val Loss: inf, Val IoU: 0.8900
Epoch: 77, Batch: 0/63, Loss: 0.0791, Time: 1.35s
Epoch: 77, Batch: 10/63, Loss: 0.0502, Time: 8.70s
Epoch: 77, Batch: 20/63, Loss: 0.0630, Time: 8.75s
Epoch: 77, Batch: 30/63, Loss: 0.0584, Time: 8.60s
Epoch: 77, Batch: 40/63, Loss: 0.0760, Time: 8.90s
Epoch: 77, Batch: 50/63, Loss: 0.0002, Time: 8.75s
Epoch: 77, Batch: 60/63, Loss: 0.0779, Time: 9.04s
Epoch 78/100: Train Loss: 0.0535, Val Loss: inf, Val IoU: 0.8896
Epoch: 78, Batch: 0/63, Loss: 0.0617, Time: 1.57s
Epoch: 78, Batch: 10/63, Loss: 0.0678, Time: 8.66s
Epoch: 78, Batch: 20/63, Loss: 0.0773, Time: 8.59s
Epoch: 78, Batch: 30/63, Loss: 0.0692, Time: 8.84s
Epoch: 78, Batch: 40/63, Loss: 0.0559, Time: 8.92s
Epoch: 78, Batch: 50/63, Loss: 0.0567, Time: 8.83s
Epoch: 78, Batch: 60/63, Loss: 0.0693, Time: 8.76s
Epoch 79/100: Train Loss: 0.0531, Val Loss: inf, Val IoU: 0.8909
Epoch: 79, Batch: 0/63, Loss: 0.0460, Time: 1.36s
Epoch: 79, Batch: 10/63, Loss: 0.0585, Time: 8.69s
Epoch: 79, Batch: 20/63, Loss: 0.0576, Time: 8.83s
Epoch: 79, Batch: 30/63, Loss: 0.0444, Time: 8.79s
Epoch: 79, Batch: 40/63, Loss: 0.0573, Time: 8.81s
Epoch: 79, Batch: 50/63, Loss: 0.0527, Time: 8.78s
Epoch: 79, Batch: 60/63, Loss: 0.0659, Time: 8.85s
Epoch 80/100: Train Loss: 0.0537, Val Loss: inf, Val IoU: 0.8896
Epoch: 80, Batch: 0/63, Loss: 0.0685, Time: 1.70s
Epoch: 80, Batch: 10/63, Loss: 0.0000, Time: 8.99s
Epoch: 80, Batch: 20/63, Loss: 0.0466, Time: 8.78s
Epoch: 80, Batch: 30/63, Loss: 0.0723, Time: 8.54s
Epoch: 80, Batch: 40/63, Loss: 0.0472, Time: 8.77s
Epoch: 80, Batch: 50/63, Loss: 0.0430, Time: 8.70s
Epoch: 80, Batch: 60/63, Loss: 0.0679, Time: 8.87s
Epoch 81/100: Train Loss: 0.0526, Val Loss: inf, Val IoU: 0.8900
Epoch: 81, Batch: 0/63, Loss: 0.0904, Time: 1.71s
Epoch: 81, Batch: 10/63, Loss: 0.0000, Time: 8.73s
Epoch: 81, Batch: 20/63, Loss: 0.0540, Time: 8.80s
Epoch: 81, Batch: 30/63, Loss: 0.0401, Time: 8.96s
Epoch: 81, Batch: 40/63, Loss: 0.0485, Time: 8.64s
Epoch: 81, Batch: 50/63, Loss: 0.0886, Time: 8.72s
Epoch: 81, Batch: 60/63, Loss: 0.0732, Time: 8.85s
Epoch 82/100: Train Loss: 0.0551, Val Loss: inf, Val IoU: 0.8897
Epoch: 82, Batch: 0/63, Loss: 0.0710, Time: 1.87s
Epoch: 82, Batch: 10/63, Loss: 0.0000, Time: 8.63s
Epoch: 82, Batch: 20/63, Loss: 0.0529, Time: 9.11s
Epoch: 82, Batch: 30/63, Loss: 0.0591, Time: 8.93s
Epoch: 82, Batch: 40/63, Loss: 0.0804, Time: 8.71s
Epoch: 82, Batch: 50/63, Loss: 0.0618, Time: 8.63s
Epoch: 82, Batch: 60/63, Loss: 0.0000, Time: 8.67s
Epoch 83/100: Train Loss: 0.0520, Val Loss: inf, Val IoU: 0.8893
Epoch: 83, Batch: 0/63, Loss: 0.0702, Time: 1.46s
Epoch: 83, Batch: 10/63, Loss: 0.0495, Time: 8.71s
Epoch: 83, Batch: 20/63, Loss: 0.0427, Time: 8.66s
Epoch: 83, Batch: 30/63, Loss: 0.0742, Time: 8.80s
Epoch: 83, Batch: 40/63, Loss: 0.0623, Time: 8.82s
Epoch: 83, Batch: 50/63, Loss: 0.0717, Time: 8.74s
Epoch: 83, Batch: 60/63, Loss: 0.0508, Time: 8.91s
Epoch 84/100: Train Loss: 0.0541, Val Loss: inf, Val IoU: 0.8899
Epoch: 84, Batch: 0/63, Loss: 0.0606, Time: 1.42s
Epoch: 84, Batch: 10/63, Loss: 0.0768, Time: 8.90s
Epoch: 84, Batch: 20/63, Loss: 0.0638, Time: 8.73s
Epoch: 84, Batch: 30/63, Loss: 0.0444, Time: 8.71s
Epoch: 84, Batch: 40/63, Loss: 0.0496, Time: 8.78s
Epoch: 84, Batch: 50/63, Loss: 0.0660, Time: 8.69s
Epoch: 84, Batch: 60/63, Loss: 0.0608, Time: 8.93s
Epoch 85/100: Train Loss: 0.0547, Val Loss: inf, Val IoU: 0.8899
Epoch: 85, Batch: 0/63, Loss: 0.0471, Time: 1.49s
Epoch: 85, Batch: 10/63, Loss: 0.0661, Time: 8.76s
Epoch: 85, Batch: 20/63, Loss: 0.0529, Time: 8.62s
Epoch: 85, Batch: 30/63, Loss: 0.0000, Time: 8.67s
Epoch: 85, Batch: 40/63, Loss: 0.0000, Time: 9.00s
Epoch: 85, Batch: 50/63, Loss: 0.0633, Time: 8.71s
Epoch: 85, Batch: 60/63, Loss: 0.0574, Time: 8.86s
Epoch 86/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8899
Epoch: 86, Batch: 0/63, Loss: 0.0699, Time: 1.44s
Epoch: 86, Batch: 10/63, Loss: 0.0743, Time: 8.69s
Epoch: 86, Batch: 20/63, Loss: 0.0539, Time: 9.08s
Epoch: 86, Batch: 30/63, Loss: 0.0587, Time: 8.53s
Epoch: 86, Batch: 40/63, Loss: 0.0537, Time: 9.05s
Epoch: 86, Batch: 50/63, Loss: 0.0747, Time: 8.68s
Epoch: 86, Batch: 60/63, Loss: 0.0628, Time: 8.78s
Epoch 87/100: Train Loss: 0.0522, Val Loss: inf, Val IoU: 0.8902
Epoch: 87, Batch: 0/63, Loss: 0.0000, Time: 1.36s
Epoch: 87, Batch: 10/63, Loss: 0.0550, Time: 8.80s
Epoch: 87, Batch: 20/63, Loss: 0.0000, Time: 8.57s
Epoch: 87, Batch: 30/63, Loss: 0.0496, Time: 8.76s
Epoch: 87, Batch: 40/63, Loss: 0.0486, Time: 8.83s
Epoch: 87, Batch: 50/63, Loss: 0.0694, Time: 9.01s
Epoch: 87, Batch: 60/63, Loss: 0.0412, Time: 8.87s
Epoch 88/100: Train Loss: 0.0521, Val Loss: inf, Val IoU: 0.8903
Epoch: 88, Batch: 0/63, Loss: 0.0428, Time: 1.87s
Epoch: 88, Batch: 10/63, Loss: 0.0678, Time: 8.88s
Epoch: 88, Batch: 20/63, Loss: 0.0699, Time: 8.77s
Epoch: 88, Batch: 30/63, Loss: 0.0728, Time: 8.75s
Epoch: 88, Batch: 40/63, Loss: 0.0649, Time: 8.79s
Epoch: 88, Batch: 50/63, Loss: 0.0588, Time: 8.73s
Epoch: 88, Batch: 60/63, Loss: 0.0543, Time: 8.89s
Epoch 89/100: Train Loss: 0.0539, Val Loss: inf, Val IoU: 0.8907
Epoch: 89, Batch: 0/63, Loss: 0.0474, Time: 1.39s
Epoch: 89, Batch: 10/63, Loss: 0.0422, Time: 8.78s
Epoch: 89, Batch: 20/63, Loss: 0.0000, Time: 8.76s
Epoch: 89, Batch: 30/63, Loss: 0.0678, Time: 8.84s
Epoch: 89, Batch: 40/63, Loss: 0.0474, Time: 8.85s
Epoch: 89, Batch: 50/63, Loss: 0.0547, Time: 8.76s
Epoch: 89, Batch: 60/63, Loss: 0.0660, Time: 8.63s
Epoch 90/100: Train Loss: 0.0518, Val Loss: inf, Val IoU: 0.8897
Epoch: 90, Batch: 0/63, Loss: 0.0000, Time: 1.57s
Epoch: 90, Batch: 10/63, Loss: 0.0406, Time: 8.82s
Epoch: 90, Batch: 20/63, Loss: 0.0573, Time: 8.72s
Epoch: 90, Batch: 30/63, Loss: 0.0451, Time: 8.71s
Epoch: 90, Batch: 40/63, Loss: 0.0432, Time: 8.74s
Epoch: 90, Batch: 50/63, Loss: 0.0483, Time: 8.79s
Epoch: 90, Batch: 60/63, Loss: 0.0556, Time: 8.87s
Epoch 91/100: Train Loss: 0.0522, Val Loss: inf, Val IoU: 0.8892
Epoch: 91, Batch: 0/63, Loss: 0.0466, Time: 1.53s
Epoch: 91, Batch: 10/63, Loss: 0.0523, Time: 8.79s
Epoch: 91, Batch: 20/63, Loss: 0.0584, Time: 8.73s
Epoch: 91, Batch: 30/63, Loss: 0.0663, Time: 8.76s
Epoch: 91, Batch: 40/63, Loss: 0.0538, Time: 8.82s
Epoch: 91, Batch: 50/63, Loss: 0.0717, Time: 8.59s
Epoch: 91, Batch: 60/63, Loss: 0.0577, Time: 8.88s
Epoch 92/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8894
Epoch: 92, Batch: 0/63, Loss: 0.0650, Time: 1.59s
Epoch: 92, Batch: 10/63, Loss: 0.0668, Time: 8.86s
Epoch: 92, Batch: 20/63, Loss: 0.0490, Time: 8.75s
Epoch: 92, Batch: 30/63, Loss: 0.0694, Time: 8.88s
Epoch: 92, Batch: 40/63, Loss: 0.0475, Time: 8.89s
Epoch: 92, Batch: 50/63, Loss: 0.0380, Time: 8.68s
Epoch: 92, Batch: 60/63, Loss: 0.0551, Time: 8.57s
Epoch 93/100: Train Loss: 0.0535, Val Loss: inf, Val IoU: 0.8893
Epoch: 93, Batch: 0/63, Loss: 0.0584, Time: 1.60s
Epoch: 93, Batch: 10/63, Loss: 0.0601, Time: 8.74s
Epoch: 93, Batch: 20/63, Loss: 0.0312, Time: 8.66s
Epoch: 93, Batch: 30/63, Loss: 0.0481, Time: 8.68s
Epoch: 93, Batch: 40/63, Loss: 0.0463, Time: 8.77s
Epoch: 93, Batch: 50/63, Loss: 0.0702, Time: 8.93s
Epoch: 93, Batch: 60/63, Loss: 0.0481, Time: 8.91s
Epoch 94/100: Train Loss: 0.0541, Val Loss: inf, Val IoU: 0.8902
Epoch: 94, Batch: 0/63, Loss: 0.0531, Time: 1.48s
Epoch: 94, Batch: 10/63, Loss: 0.0606, Time: 8.99s
Epoch: 94, Batch: 20/63, Loss: 0.0704, Time: 8.57s
Epoch: 94, Batch: 30/63, Loss: 0.0555, Time: 8.69s
Epoch: 94, Batch: 40/63, Loss: 0.0479, Time: 8.83s
Epoch: 94, Batch: 50/63, Loss: 0.0660, Time: 8.74s
Epoch: 94, Batch: 60/63, Loss: 0.0503, Time: 8.82s
Epoch 95/100: Train Loss: 0.0510, Val Loss: inf, Val IoU: 0.8891
Epoch: 95, Batch: 0/63, Loss: 0.0467, Time: 1.95s
Epoch: 95, Batch: 10/63, Loss: 0.0677, Time: 8.90s
Epoch: 95, Batch: 20/63, Loss: 0.0620, Time: 8.72s
Epoch: 95, Batch: 30/63, Loss: 0.0547, Time: 8.58s
Epoch: 95, Batch: 40/63, Loss: 0.0614, Time: 8.76s
Epoch: 95, Batch: 50/63, Loss: 0.0566, Time: 8.93s
Epoch: 95, Batch: 60/63, Loss: 0.0685, Time: 8.79s
Epoch 96/100: Train Loss: 0.0515, Val Loss: inf, Val IoU: 0.8897
Epoch: 96, Batch: 0/63, Loss: 0.0549, Time: 1.46s
Epoch: 96, Batch: 10/63, Loss: 0.0734, Time: 9.00s
Epoch: 96, Batch: 20/63, Loss: 0.0649, Time: 8.66s
Epoch: 96, Batch: 30/63, Loss: 0.0626, Time: 8.78s
Epoch: 96, Batch: 40/63, Loss: 0.0373, Time: 8.51s
Epoch: 96, Batch: 50/63, Loss: 0.0552, Time: 8.99s
Epoch: 96, Batch: 60/63, Loss: 0.0688, Time: 8.73s
Epoch 97/100: Train Loss: 0.0514, Val Loss: inf, Val IoU: 0.8903
Epoch: 97, Batch: 0/63, Loss: 0.0678, Time: 1.50s
Epoch: 97, Batch: 10/63, Loss: 0.0000, Time: 8.59s
Epoch: 97, Batch: 20/63, Loss: 0.0727, Time: 8.94s
Epoch: 97, Batch: 30/63, Loss: 0.0521, Time: 8.71s
Epoch: 97, Batch: 40/63, Loss: 0.0714, Time: 8.94s
Epoch: 97, Batch: 50/63, Loss: 0.0609, Time: 8.94s
Epoch: 97, Batch: 60/63, Loss: 0.0000, Time: 8.67s
Epoch 98/100: Train Loss: 0.0523, Val Loss: inf, Val IoU: 0.8903
Epoch: 98, Batch: 0/63, Loss: 0.0521, Time: 1.60s
Epoch: 98, Batch: 10/63, Loss: 0.0521, Time: 8.85s
Epoch: 98, Batch: 20/63, Loss: 0.0000, Time: 8.76s
Epoch: 98, Batch: 30/63, Loss: 0.0000, Time: 8.81s
Epoch: 98, Batch: 40/63, Loss: 0.0626, Time: 8.90s
Epoch: 98, Batch: 50/63, Loss: 0.0709, Time: 8.66s
Epoch: 98, Batch: 60/63, Loss: 0.0000, Time: 8.67s
Epoch 99/100: Train Loss: 0.0527, Val Loss: inf, Val IoU: 0.8900
Epoch: 99, Batch: 0/63, Loss: 0.0571, Time: 1.43s
Epoch: 99, Batch: 10/63, Loss: 0.0681, Time: 8.85s
Epoch: 99, Batch: 20/63, Loss: 0.0627, Time: 8.81s
Epoch: 99, Batch: 30/63, Loss: 0.0498, Time: 8.96s
Epoch: 99, Batch: 40/63, Loss: 0.0533, Time: 8.93s
Epoch: 99, Batch: 50/63, Loss: 0.0666, Time: 8.56s
Epoch: 99, Batch: 60/63, Loss: 0.0488, Time: 8.48s
Epoch 100/100: Train Loss: 0.0533, Val Loss: inf, Val IoU: 0.8901
Final Evaluation - Loss: inf, IoU: 0.8936
Training complete! Trained model saved to output/models

Once trained, let's apply it to the test image:

In [ ]:
masks_path = "solar_panels_prediction.tif"
model_path = f"{out_folder}/models/best_model.pth"
In [ ]:
geoai.object_detection(
    test_raster_path,
    masks_path,
    model_path,
    window_size=512,
    overlap=256,
    confidence_threshold=0.5,
    batch_size=4,
    num_channels=3,
)
Processing 209 windows with size 512x512 and overlap 256...
240it [00:23, 10.15it/s]
Inference completed in 23.77 seconds
Saved prediction to solar_panels_prediction.tif

Then we convert the generated mask image to polygons:

In [ ]:
output_path = "solar_panels_prediction.geojson"
gdf = geoai.orthogonalize(masks_path, output_path, epsilon=2)
Processing 39 features...
Converting features: 100%|██████████| 39/39 [00:00<00:00, 93.37shape/s]
Saving to solar_panels_prediction.geojson...
Done!

In [ ]:
gdf
Out[ ]:
geometry value
0 POLYGON ((-13555477.794 4657750.182, -13555476... 1
1 POLYGON ((-13555672.098 4657741.33, -13555667.... 1
2 POLYGON ((-13555693.336 4657739.241, -13555689... 1
3 POLYGON ((-13555661.535 4657749.355, -13555661... 1
4 POLYGON ((-13555671.463 4657736.403, -13555666... 1
5 POLYGON ((-13555700.876 4657746.817, -13555700... 1
6 POLYGON ((-13555587.52 4657726.176, -13555587.... 1
7 POLYGON ((-13555584.944 4657717.256, -13555584... 1
8 POLYGON ((-13555522.821 4657723.474, -13555519... 1
9 POLYGON ((-13555590.878 4657705.2, -13555590.8... 1
10 POLYGON ((-13555760.82 4657686.874, -13555752.... 1
11 POLYGON ((-13555725.287 4657690.458, -13555725... 1
12 POLYGON ((-13555776.646 4657675.604, -13555776... 1
13 POLYGON ((-13555519.113 4657667.571, -13555518... 1
14 POLYGON ((-13555499.581 4657666.943, -13555499... 1
15 POLYGON ((-13555455.724 4657661.718, -13555455... 1
16 POLYGON ((-13555567.177 4657657.239, -13555567... 1
17 POLYGON ((-13555579.457 4657652.797, -13555571... 1
18 POLYGON ((-13555508.353 4657638.279, -13555508... 1
19 POLYGON ((-13555569.192 4657637.009, -13555569... 1
20 POLYGON ((-13555450.762 4657629.358, -13555450... 1
21 POLYGON ((-13555499.208 4657634.024, -13555499... 1
22 POLYGON ((-13555502.903 4657635.741, -13555502... 1
23 POLYGON ((-13555501.373 4657615.473, -13555498... 1
24 POLYGON ((-13555512.123 4657616.631, -13555512... 1
25 POLYGON ((-13555565.636 4657612.563, -13555565... 1
26 POLYGON ((-13555502.008 4657599.387, -13555502... 1
27 POLYGON ((-13555554.152 4657593.603, -13555550... 1
28 POLYGON ((-13555572.926 4657592.296, -13555567... 1
29 POLYGON ((-13555506.112 4657584.31, -13555503.... 1
30 POLYGON ((-13555502.641 4657588.377, -13555502... 1
31 POLYGON ((-13555510.107 4657584.16, -13555507.... 1
32 POLYGON ((-13555569.267 4657576.547, -13555562... 1
33 POLYGON ((-13555562.997 4657576.622, -13555562... 1
34 POLYGON ((-13555448.334 4657559.078, -13555448... 1
35 POLYGON ((-13555576.959 4657550.643, -13555570... 1
36 POLYGON ((-13555570.386 4657543.439, -13555564... 1
37 POLYGON ((-13555560.421 4657544.409, -13555560... 1
In [ ]:
geoai.view_vector_interactive(output_path, tiles=test_raster_url)
Out[ ]:
Make this Notebook Trusted to load map: File -> Trust Notebook